From 771329e12fa9327980a43ef22cb4b9b24211b0cc Mon Sep 17 00:00:00 2001 From: davidovski Date: Sun, 21 Apr 2024 21:49:56 +0100 Subject: add offsets for placed items --- main.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 7c4e014..fb86e10 100644 --- a/main.go +++ b/main.go @@ -18,10 +18,11 @@ const ( screenHeight = 240 tileSize = 16 playerSpeed = 2.1 - jumpHeight = 3.2 + jumpHeight = 4 rewindSpeed = 2 gravity = 0.16 - friction = 0.9 + friction = 0.75 + airResistance = 0.98 ) var ( @@ -111,6 +112,8 @@ func (g *Game) Init() { g.toPlace = append(g.toPlace, NewBox(0, 0)) g.toPlace = append(g.toPlace, NewBox(0, 0)) g.toPlace = append(g.toPlace, NewSpring(0, 0)) + g.toPlace = append(g.toPlace, NewSpike(0, 0)) + g.toPlace = append(g.toPlace, NewLeftSpike(0, 0)) g.surface = ebiten.NewImage(screenWidth, screenHeight) g.shaderName = "none" @@ -162,9 +165,7 @@ func (g *Game) Update() error { if g.state == REVERSING { g.state = IN_GAME g.shaderName = "none" - } - - if g.state == IN_GAME { + } else if g.state == IN_GAME { g.state = REVERSING g.shaderName = "vcr" } @@ -200,12 +201,16 @@ func (g *Game) Update() error { if g.state == PLACING { if len(g.toPlace) > 0 { + placeable := g.toPlace[0] cx, cy := ebiten.CursorPosition() cx = int(math.Floor(float64(cx)/float64(g.tilemap.tileSize)))*g.tilemap.tileSize cy = int(math.Floor(float64(cy)/float64(g.tilemap.tileSize)))*g.tilemap.tileSize - g.toPlace[0].x = float32(cx) - g.toPlace[0].y = float32(cy) + cx += placeable.offsetX + cy += placeable.offsetY + + placeable.x = float32(cx) + placeable.y = float32(cy) if inpututil.IsMouseButtonJustPressed(ebiten.MouseButton0) { g.PlaceObject(cx, cy) -- cgit v1.2.1