Rebranding.

This commit is contained in:
Andrey Parhomenko 2023-10-23 15:45:18 +03:00
parent d0aeb9d9e4
commit 27b803e4e5
30 changed files with 193 additions and 196 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
exe exe
*.vim *.vim
*.exe

View file

@ -1,4 +1,4 @@
package gx package gg
// Implements the camera component // Implements the camera component
// for the main window. // for the main window.

View file

@ -1,7 +1,7 @@
package main package main
import ( import (
"github.com/surdeus/gox/src/gx" "github.com/reklesio/gg/src/gx"
"fmt" "fmt"
) )
@ -17,6 +17,3 @@ func main() {
fmt.Println("barycenter:", p.Barycenter()) fmt.Println("barycenter:", p.Barycenter())
fmt.Println("edges:", p.Edges()) fmt.Println("edges:", p.Edges())
} }

View file

@ -1,7 +1,7 @@
package main package main
import ( import (
"github.com/surdeus/gox/gx" "github.com/reklesio/gg"
"github.com/hajimehoshi/ebiten/v2/examples/resources/images" "github.com/hajimehoshi/ebiten/v2/examples/resources/images"
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"
"bytes" "bytes"
@ -12,7 +12,7 @@ import (
) )
const ( const (
HighestL gx.Layer = -iota HighestL gg.Layer = -iota
DebugL DebugL
TriangleL TriangleL
PlayerL PlayerL
@ -21,44 +21,44 @@ const (
) )
type Player struct { type Player struct {
*gx.Sprite *gg.Sprite
MoveSpeed gx.Float MoveSpeed gg.Float
ScaleSpeed gx.Float ScaleSpeed gg.Float
gx.Layer gg.Layer
} }
type Debug struct { type Debug struct {
gx.Layer gg.Layer
} }
type Rect struct { type Rect struct {
*gx.DrawableRectangle *gg.DrawableRectangle
gx.Layer gg.Layer
} }
type Tri struct { type Tri struct {
*gx.DrawablePolygon *gg.DrawablePolygon
gx.Layer gg.Layer
} }
func NewTri() *Tri { func NewTri() *Tri {
ret := &Tri{} ret := &Tri{}
ret.DrawablePolygon = &gx.DrawablePolygon{} ret.DrawablePolygon = &gg.DrawablePolygon{}
ret.Transform.S = gx.V(1, 1) ret.Transform.S = gg.V(1, 1)
ret.Triangles = gx.Triangles{ ret.Triangles = gg.Triangles{
gx.Triangle{ gg.Triangle{
gx.V(0, 0), gg.V(0, 0),
gx.V(100, 100), gg.V(100, 100),
gx.V(0, -50), gg.V(0, -50),
}, },
gx.Triangle{ gg.Triangle{
gx.V(0, 0), gg.V(0, 0),
gx.V(-100, -100), gg.V(-100, -100),
gx.V(0, 50), gg.V(0, 50),
}, },
} }
ret.Color = gx.Color{gx.MaxColorV, gx.MaxColorV, 0, gx.MaxColorV} ret.Color = gg.Color{gg.MaxColorV, gg.MaxColorV, 0, gg.MaxColorV}
ret.Visible = true ret.Visible = true
ret.Layer = TriangleL ret.Layer = TriangleL
@ -66,25 +66,25 @@ func NewTri() *Tri {
} }
func NewRect() *Rect { func NewRect() *Rect {
ret := &Rect{&gx.DrawableRectangle{ ret := &Rect{&gg.DrawableRectangle{
Rectangle: gx.Rectangle{ Rectangle: gg.Rectangle{
Transform: gx.Transform{ Transform: gg.Transform{
S: gx.Vector{ S: gg.Vector{
X: 200, X: 200,
Y: 400, Y: 400,
}, },
}, },
}, },
Color: gx.Color{ Color: gg.Color{
gx.MaxColorV, gg.MaxColorV,
0, 0,
0, 0,
gx.MaxColorV, gg.MaxColorV,
}, },
Visible: true, Visible: true,
/*Shader: gx.SolidWhiteColorShader, /*Shader: gg.SolidWhiteColorShader,
Options: gx.ShaderOptions{ Options: gg.ShaderOptions{
Images: [4]*gx.Image{ Images: [4]*gg.Image{
playerImg, playerImg,
nil, nil,
nil, nil,
@ -98,29 +98,29 @@ func NewRect() *Rect {
return ret return ret
} }
func (r *Rect) Update(e *gx.Engine) error { func (r *Rect) Update(e *gg.Engine) error {
//r.R += 0.3 * e.DT() //r.R += 0.3 * e.DT()
return nil return nil
} }
var ( var (
playerImg *gx.Image playerImg *gg.Image
player *Player player *Player
rectMove gx.Rectangle rectMove gg.Rectangle
rect *Rect rect *Rect
tri *Tri tri *Tri
) )
func NewPlayer() *Player { func NewPlayer() *Player {
ret := &Player{ ret := &Player{
Sprite: &gx.Sprite{ Sprite: &gg.Sprite{
Transform: gx.Transform { Transform: gg.Transform{
S: gx.Vector{5, 5}, S: gg.Vector{5, 5},
RA: gx.Vector{.5, .5}, RA: gg.Vector{.5, .5},
}, },
Visible: true, Visible: true,
ShaderOptions: gx.ShaderOptions { ShaderOptions: gg.ShaderOptions{
Shader: gx.SolidWhiteColorShader, Shader: gg.SolidWhiteColorShader,
Uniforms: make(map[string]any), Uniforms: make(map[string]any),
}, },
}, },
@ -134,34 +134,35 @@ func NewPlayer() *Player {
return ret return ret
} }
func (p *Player) Draw(e *gx.Engine, i *gx.Image) { func (p *Player) Draw(e *gg.Engine, i *gg.Image) {
p.Sprite.Draw(e, i) p.Sprite.Draw(e, i)
t := p.Transform t := p.Transform
t.S.X *= 4. t.S.X *= 4.
t.S.Y *= 4. t.S.Y *= 4.
rectMove = gx.Rectangle{ rectMove = gg.Rectangle{
Transform: t, Transform: t,
} }
r := &gx.DrawableRectangle{ r := &gg.DrawableRectangle{
Rectangle: rectMove, Rectangle: rectMove,
Color: gx.Color{0, 0, gx.MaxColorV, gx.MaxColorV}, Color: gg.Color{0, 0, gg.MaxColorV, gg.MaxColorV},
} }
r.Draw(e, i) r.Draw(e, i)
} }
func (p *Player) Start(e *gx.Engine, v ...any) { func (p *Player) Start(e *gg.Engine, v ...any) {
fmt.Println("starting") fmt.Println("starting")
c := e.Camera() c := e.Camera()
c.RA = gx.V(360, 240) c.RA = gg.V(360, 240)
} }
func (p *Player) Update(e *gx.Engine) error { func (p *Player) Update(e *gg.Engine) error {
dt := e.DT() dt := e.DT()
c := e.Camera() c := e.Camera()
keys := e.Keys() keys := e.Keys()
p.Uniforms["Random"] = any(rand.Float32()) p.Uniforms["Random"] = any(rand.Float32())
for _, v := range keys {switch v { for _, v := range keys {
switch v {
case ebiten.KeyArrowUp: case ebiten.KeyArrowUp:
c.P.Y += p.MoveSpeed * dt c.P.Y += p.MoveSpeed * dt
case ebiten.KeyArrowLeft: case ebiten.KeyArrowLeft:
@ -179,50 +180,50 @@ func (p *Player) Update(e *gx.Engine) error {
case ebiten.KeyD: case ebiten.KeyD:
p.P.X += p.MoveSpeed * dt p.P.X += p.MoveSpeed * dt
case ebiten.KeyR: case ebiten.KeyR:
c.R += gx.Pi * p.ScaleSpeed * dt c.R += gg.Pi * p.ScaleSpeed * dt
case ebiten.KeyT: case ebiten.KeyT:
c.R -= gx.Pi * p.ScaleSpeed * dt c.R -= gg.Pi * p.ScaleSpeed * dt
case ebiten.KeyRightBracket: case ebiten.KeyRightBracket:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
p.R -= gx.Pi * 0.3 * dt p.R -= gg.Pi * 0.3 * dt
} else { } else {
p.R += gx.Pi * 0.3 * dt p.R += gg.Pi * 0.3 * dt
} }
case ebiten.KeyF: case ebiten.KeyF:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
c.S.X -= gx.Pi * p.ScaleSpeed * dt c.S.X -= gg.Pi * p.ScaleSpeed * dt
} else { } else {
c.S.X += gx.Pi * p.ScaleSpeed * dt c.S.X += gg.Pi * p.ScaleSpeed * dt
} }
case ebiten.KeyG: case ebiten.KeyG:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
c.S.Y -= gx.Pi * p.ScaleSpeed * dt c.S.Y -= gg.Pi * p.ScaleSpeed * dt
} else { } else {
c.S.Y += gx.Pi * p.ScaleSpeed * dt c.S.Y += gg.Pi * p.ScaleSpeed * dt
} }
case ebiten.KeyZ: case ebiten.KeyZ:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
c.RA.X -= gx.Pi * p.MoveSpeed * dt c.RA.X -= gg.Pi * p.MoveSpeed * dt
} else { } else {
c.RA.X += gx.Pi * p.MoveSpeed * dt c.RA.X += gg.Pi * p.MoveSpeed * dt
} }
case ebiten.KeyX: case ebiten.KeyX:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
c.RA.Y -= gx.Pi * p.MoveSpeed * dt c.RA.Y -= gg.Pi * p.MoveSpeed * dt
} else { } else {
c.RA.Y += gx.Pi * p.MoveSpeed * dt c.RA.Y += gg.Pi * p.MoveSpeed * dt
} }
case ebiten.KeyV: case ebiten.KeyV:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
tri.R -= gx.Pi * 0.3 * dt tri.R -= gg.Pi * 0.3 * dt
} else { } else {
tri.R += gx.Pi * 0.3 * dt tri.R += gg.Pi * 0.3 * dt
} }
case ebiten.KeyLeftBracket: case ebiten.KeyLeftBracket:
if e.KeyIsPressed(ebiten.KeyShift) { if e.KeyIsPressed(ebiten.KeyShift) {
rect.R -= gx.Pi * 0.3 * dt rect.R -= gg.Pi * 0.3 * dt
} else { } else {
rect.R += gx.Pi * 0.3 * dt rect.R += gg.Pi * 0.3 * dt
} }
case ebiten.Key0: case ebiten.Key0:
e.Del(p) e.Del(p)
@ -232,14 +233,15 @@ func (p *Player) Update(e *gx.Engine) error {
} else { } else {
p.Layer = HighestL p.Layer = HighestL
} }
}} }
}
return nil return nil
} }
func (d *Debug) Draw( func (d *Debug) Draw(
e *gx.Engine, e *gg.Engine,
i *gx.Image, i *gg.Image,
) { ) {
keyStrs := []string{} keyStrs := []string{}
for _, k := range e.Keys() { for _, k := range e.Keys() {
@ -259,7 +261,7 @@ func (d *Debug) Draw(
func (d *Debug) IsVisible() bool { return true } func (d *Debug) IsVisible() bool { return true }
func main() { func main() {
e := gx.NewEngine(&gx.WindowConfig{ e := gg.NewEngine(&gg.WindowConfig{
Title: "Test title", Title: "Test title",
Width: 720, Width: 720,
Height: 480, Height: 480,
@ -267,12 +269,11 @@ func main() {
}) })
var err error var err error
playerImg, err = gx.LoadImage(bytes.NewReader(images.Runner_png)) playerImg, err = gg.LoadImage(bytes.NewReader(images.Runner_png))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
player = NewPlayer() player = NewPlayer()
rect = NewRect() rect = NewRect()
tri = NewTri() tri = NewTri()

View file

@ -1,4 +1,4 @@
package gx package gg
// Implementing the interface lets // Implementing the interface lets
// the engine to work faster about // the engine to work faster about

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2/ebitenutil" "github.com/hajimehoshi/ebiten/v2/ebitenutil"

View file

@ -1,4 +1,4 @@
package gx package gg
// The structure represents elipses. // The structure represents elipses.
type Elipse struct { type Elipse struct {

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"errors" "errors"

View file

@ -1,6 +0,0 @@
package gix
import (
)

2
go.mod
View file

@ -1,4 +1,4 @@
module github.com/surdeus/gox module github.com/reklesio/gg
go 1.20 go 1.20

View file

@ -1,3 +0,0 @@
package gx

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"math" "math"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"math" "math"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

BIN
media/gopher.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

3
misc.go Normal file
View file

@ -0,0 +1,3 @@
package gg

View file

@ -1,4 +1,4 @@
package gx package gg
// Implementing the interface type // Implementing the interface type
// will call the function OnStart // will call the function OnStart

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
) )

View file

@ -1,4 +1,4 @@
package gx package gg
// The type represents math ray. // The type represents math ray.
type Ray struct { type Ray struct {

View file

@ -1,4 +1,8 @@
# gox # gg
2D graphcs engine based on [ebiten](https://github.com/hajimehoshi/ebiten). ![Insert here a gopher, please](https://raw.githubusercontent.com/reklesio/gg/master/media/gopher.png)
Golang Graphics, Gopher Games or Good Game engine for 2D applications.
Basing on [ebiten](https://github.com/hajimehoshi/ebiten).

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"time" "time"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
//"github.com/hajimehoshi/ebiten/v2" //"github.com/hajimehoshi/ebiten/v2"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
"math" "math"

View file

@ -1,4 +1,4 @@
package gx package gg
import ( import (
//"github.com/hajimehoshi/ebiten/v2" //"github.com/hajimehoshi/ebiten/v2"