gg/cmd/test/trianlge.go

70 lines
1.1 KiB
Go
Raw Normal View History

2023-12-23 00:09:07 +03:00
package main
2024-01-04 17:05:51 +03:00
import "github.com/vultras/gg"
import "fmt"
2023-12-23 00:09:07 +03:00
type Tri struct {
gg.DrawablePolygon
2023-12-23 00:09:07 +03:00
gg.Layer
}
func NewTri() *Tri {
ret := &Tri{}
2023-12-24 15:05:34 +03:00
ret.Transform.Scale = gg.V2(1)
2023-12-23 00:09:07 +03:00
ret.Triangles = gg.Triangles{
gg.Triangle{
gg.V(0, 10),
gg.V(100, 0),
gg.V(0, -10),
2023-12-23 00:09:07 +03:00
},
}
ret.Color = gg.Rgba(1, 1, 0, 1)
2023-12-23 00:09:07 +03:00
ret.Visible = true
ret.Layer = TriangleL
2023-12-28 14:34:52 +03:00
ret.Connect(player)
2023-12-23 00:09:07 +03:00
return ret
}
func (t *Tri) Update(c *Context) {
if t.ContainsPoint(c.AbsCursorPosition()) {
t.Color = gg.Rgba(0, 1, 0, 1)
} else {
t.Color = gg.Rgba(1, 0, 1, 1)
}
d := +1.
if c.IsPressed(gg.KeyShift) {
d = -1.
}
if c.IsPressed(gg.KeyM) {
absPos := tri.AbsPosition()
tri.SetAbsPosition(
2024-01-04 17:05:51 +03:00
absPos.Add(gg.V(0, 100*c.DT()*d)),
)
}
if c.IsPressed(gg.KeyN) {
absPos := tri.AbsPosition()
tri.SetAbsPosition(
2024-01-04 17:05:51 +03:00
absPos.Add(gg.V(100*c.DT()*d, 0)),
)
}
2023-12-23 00:09:07 +03:00
}
func (t *Tri) Event(c *Context) {
switch e := c.Event.(type) {
2024-01-04 17:05:51 +03:00
case *gg.KeyDown:
if e.Key != gg.Key1 {
break
}
if t.Connected() {
fmt.Println("disconnecting:", tri.Transform)
t.Disconnect()
} else {
t.Connect(player)
fmt.Println("connecting:", tri.Transform)
}
}
}