From 6bbdbd75df96a20edecfcc1fbbf4497811723ac6 Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Fri, 24 Apr 2026 00:31:21 +0200 Subject: [PATCH] get player rotation working --- .../src/entities/player.fnl | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/two_player_cleaning_game/src/entities/player.fnl b/two_player_cleaning_game/src/entities/player.fnl index 76f132e..3cbfa1c 100644 --- a/two_player_cleaning_game/src/entities/player.fnl +++ b/two_player_cleaning_game/src/entities/player.fnl @@ -19,6 +19,29 @@ (local player { :x 50 :y 50 :w 25 :h 25 :speed 80 :battery 100 :rot 0 }) (fn player.update [self dt] + (let [ + d-key (love.keyboard.isDown :d) + a-key (love.keyboard.isDown :a) + e-key (love.keyboard.isDown :e) + q-key (love.keyboard.isDown :q)] + (match {:d-key d-key :a-key a-key :e-key e-key :q-key q-key} + {:d-key true :a-key false :e-key false :q-key false} (set self.rot (+ self.rot (* dt 2))) + {:d-key false :a-key true :e-key false :q-key false} (set self.rot (- self.rot (* dt 2))) + {:d-key false :a-key false :e-key true :q-key false} (set self.rot (- self.rot (* dt 2))) + {:d-key false :a-key false :e-key false :q-key true} (set self.rot (+ self.rot (* dt 2))) + )) + ; (when (and (> self.battery 0) (or d-key a-key e-key q-key)) + ; (let [ + ; dir-fn (if (or d-key a-key) #(+ $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))) + ; col-filter-fn (lambda [item other] + ; (if (= other.behavior "block") :slide :cross)) + ; (x y cols len) (bump-world:move player new-x new-y col-filter-fn)] + ; (tset player :x x) + ; (tset player :y y)) + ; (if (> player.battery 0) + ; (set player.battery (- player.battery (* dt 2)))))) (beholder.trigger "PLAYER.POS" self.x self.y)) (fn player.load [self level-key]