diff --git a/main.lua b/main.lua index e6dfc93..8fbb8c3 100644 --- a/main.lua +++ b/main.lua @@ -150,6 +150,7 @@ function love.update(dt) local turtleRect = tilePos2Rect(screenPixelToTilePos(player.turtlePos)) if player.float_speed ~= 0 then player.pos.y = player.pos.y + player.float_speed*dt + player.turtlePos.y = player.turtlePos.y + player.float_speed*dt end for i, vehicle in ipairs(game.entities.vehicles) do if rectanglesIntersect(playerRect, vehicle) then @@ -165,9 +166,20 @@ function love.update(dt) vehicle.y = -vehicle.h end end + local was_floating = player.float_speed ~= 0 player.float_speed = 0 for i, floatdev in ipairs(game.entities.floatdevs) do if player.float_speed == 0 and rectanglesIntersect(playerRect, floatdev) then + if not was_floating then + if math.abs(player.pos.y - floatdev.y) > math.abs(player.pos.y - (floatdev.y + floatdev.h)) then + player.pos.y = floatdev.y + player.turtlePos.y = player.pos.y + game.TILE_SIZE*2 + else + player.pos.y = floatdev.y + floatdev.h - game.TILE_SIZE + player.turtlePos.y = player.pos.y - game.TILE_SIZE + end + end + player.turtlePos.x = player.pos.x player.float_speed = floatdev.speed end floatdev.y = floatdev.y + floatdev.speed*dt @@ -185,6 +197,13 @@ function love.update(dt) player.lives = player.lives - 1 end end + if not player.dead and was_floating then + player.turtlePos.x = player.pos.x + player.turtlePos.y = player.pos.y - game.TILE_SIZE + if player.turtlePos.y < t2p(0) then + player.turtlePos.y = player.pos.y + game.TILE_SIZE + end + end end end end