diff --git a/animationMario.go b/animationMario.go index 9242f74..f5da73b 100644 --- a/animationMario.go +++ b/animationMario.go @@ -69,11 +69,16 @@ func (a *Animation) updateMarioPosition() { marioY += centerY // Check for edge collision and change direction if necessary - if marioX < 0 || marioX >= a.ctx.Width() { - a.mario.angle = -a.mario.angle + if marioX < 0 { + a.mario.angle = -a.mario.angle + math.Pi // Reflect horizontally and adjust angle + } else if marioX >= a.ctx.Width() { + a.mario.angle = -a.mario.angle + math.Pi // Reflect horizontally and adjust angle } - if marioY < 0 || marioY >= a.ctx.Height() { - a.mario.angle = math.Pi + (math.Pi - a.mario.angle) + + if marioY < 0 { + a.mario.angle = math.Pi - a.mario.angle // Flip vertically and adjust angle + } else if marioY >= a.ctx.Height() { + a.mario.angle = math.Pi - a.mario.angle // Flip vertically and adjust angle } a.mario.position.X = marioX