feat: added the grid to the cmd/test.
This commit is contained in:
parent
86ae2fbde9
commit
e78a0d9881
2 changed files with 77 additions and 0 deletions
3
bg.go
Normal file
3
bg.go
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
package gg
|
||||||
|
|
||||||
|
|
|
@ -12,12 +12,42 @@ import (
|
||||||
|
|
||||||
type Context = gg.Context
|
type Context = gg.Context
|
||||||
|
|
||||||
|
type Grid struct {
|
||||||
|
gg.Sprite
|
||||||
|
Cage, Width gg.Float
|
||||||
|
}
|
||||||
|
|
||||||
|
func (grid *Grid) Update(c *Context) {
|
||||||
|
//d := c.IsPressed(gg.KeyShift)
|
||||||
|
for _, ev := range c.Events { switch e := ev.(type){
|
||||||
|
case *gg.KeyDown : switch e.Key {
|
||||||
|
case gg.Key9 :
|
||||||
|
grid.Cage /= 10
|
||||||
|
grid.Width /= 5
|
||||||
|
case gg.Key0 :
|
||||||
|
grid.Cage *= 10
|
||||||
|
grid.Width *= 5
|
||||||
|
}}}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (grid *Grid) Draw(c *Context) []gg.EVertex {
|
||||||
|
scale := c.Camera.Scale()
|
||||||
|
pos := c.Camera.Position()
|
||||||
|
grid.Uniforms["Zoom"] = gg.Float(scale.X)
|
||||||
|
grid.Uniforms["PosX"] = pos.X
|
||||||
|
grid.Uniforms["PosY"] = pos.Y
|
||||||
|
grid.Uniforms["Cage"] = grid.Cage
|
||||||
|
grid.Uniforms["Width"] = grid.Width
|
||||||
|
return grid.Sprite.Draw(c)
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
HighestL gg.Layer = -iota
|
HighestL gg.Layer = -iota
|
||||||
DebugL
|
DebugL
|
||||||
TriangleL
|
TriangleL
|
||||||
PlayerL
|
PlayerL
|
||||||
RectL
|
RectL
|
||||||
|
BackgroundLayer
|
||||||
LowestL
|
LowestL
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -76,6 +106,50 @@ func main() {
|
||||||
circle.Visible = true*/
|
circle.Visible = true*/
|
||||||
//e.Spawn(circle)
|
//e.Spawn(circle)
|
||||||
|
|
||||||
|
bgShader := gg.MustNewShader([]byte(`
|
||||||
|
package main
|
||||||
|
|
||||||
|
//kage:unit pixels
|
||||||
|
|
||||||
|
//var cameraScaleX, cameraScaleY
|
||||||
|
var Zoom float
|
||||||
|
var PosX, PosY float
|
||||||
|
var Cage float
|
||||||
|
var Width float
|
||||||
|
|
||||||
|
const (
|
||||||
|
)
|
||||||
|
|
||||||
|
func Fragment(dst vec4, src vec2, _ vec4) vec4 {
|
||||||
|
c := imageSrc0UnsafeAt(src)
|
||||||
|
dstSize := imageDstSize()/Zoom
|
||||||
|
absDst := vec2(
|
||||||
|
dst.x/Zoom - dstSize.x/2 - PosX,
|
||||||
|
dst.y/Zoom - dstSize.y/2 - PosY,
|
||||||
|
)
|
||||||
|
cx := c*step(Cage-Width, mod(absDst.x-Width/2, Cage))
|
||||||
|
cy := c*step(Cage-Width, mod(absDst.y-Width/2, Cage))
|
||||||
|
if cx.a == 0 {
|
||||||
|
return cy
|
||||||
|
}
|
||||||
|
return cx
|
||||||
|
}
|
||||||
|
`))
|
||||||
|
grid := &Grid{}
|
||||||
|
grid.Transform = gg.T()
|
||||||
|
grid.SetAround(gg.V2(0))
|
||||||
|
grid.Layer = BackgroundLayer
|
||||||
|
grid.Images[0] = gg.NewImage(720, 480)
|
||||||
|
grid.Images[0].Fill(gg.Rgba(1, 1, 1, 1))
|
||||||
|
grid.Shader = bgShader
|
||||||
|
grid.Uniforms = map[string] any{}
|
||||||
|
//bg.Floating = true
|
||||||
|
grid.Visible = true
|
||||||
|
grid.Floating = true
|
||||||
|
grid.Cage = 100
|
||||||
|
grid.Width = 5
|
||||||
|
e.Spawn(grid)
|
||||||
|
|
||||||
txt := &Text{}
|
txt := &Text{}
|
||||||
txt.Transform = gg.T()
|
txt.Transform = gg.T()
|
||||||
//txt.Position = gg.V2(400)
|
//txt.Position = gg.V2(400)
|
||||||
|
|
Loading…
Reference in a new issue