From 8d4745832d2793cc2137a5150430c27c38cb7c7c Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Tue, 14 Apr 2026 12:49:41 +0200 Subject: [PATCH] add reverse tire movment --- two_player_cleaning_game/main.fnl | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/two_player_cleaning_game/main.fnl b/two_player_cleaning_game/main.fnl index 9e0033c..007bb31 100644 --- a/two_player_cleaning_game/main.fnl +++ b/two_player_cleaning_game/main.fnl @@ -133,20 +133,28 @@ while 1 do love.event.push('stdin', io.read('*line')) end") :start)) (love.graphics.rectangle "line" collider.x collider.y collider.width collider.height)))) (fn love.update [dt] - ; rotate player - (if (and (love.keyboard.isDown :d) (not (love.keyboard.isDown :a))) - (tset player :rot (+ player.rot (* dt 2)))) + ; move / rotate player + (let [ + d (love.keyboard.isDown :d) + a (love.keyboard.isDown :a) + e (love.keyboard.isDown :e) + q (love.keyboard.isDown :q)] - (if (and (love.keyboard.isDown :a) (not (love.keyboard.isDown :d))) - (tset player :rot (- player.rot (* dt 2)))) + (case [d a e q] + [true false false false] (tset player :rot (+ player.rot (* dt 2))) + [false true false false] (tset player :rot (- player.rot (* dt 2))) + [false false true false] (tset player :rot (- player.rot (* dt 2))) + [false false false true] (tset player :rot (+ player.rot (* dt 2))) + ) - (if (or (love.keyboard.isDown :a) (love.keyboard.isDown :d)) + (if (or d a e q) (let [ - new-x (+ player.x (* player.speed dt (math.cos player.rot))) - new-y (+ player.y (* player.speed dt (math.sin player.rot))) + dir-fn (if (or d a) #(+ $1 $2) #(- $1 $2)) + new-x (dir-fn player.x (* player.speed dt (math.cos player.rot))) + new-y (dir-fn player.y (* player.speed dt (math.sin player.rot))) (x y) (bump-world:move player new-x new-y)] (tset player :x x) - (tset player :y y))) + (tset player :y y)))) ;; Update camera to follow player (keep player centered on screen) (tset camera :x (- player.x (/ screen.canvas-w 2)))