From d5a454eff8e722c372b42efd476b52a51bba327d Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Thu, 15 May 2025 14:20:19 +0200 Subject: Define player start position in level tmx --- src/macroknight/game.hy | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/macroknight/game.hy') diff --git a/src/macroknight/game.hy b/src/macroknight/game.hy index 53e6fac..160b46a 100644 --- a/src/macroknight/game.hy +++ b/src/macroknight/game.hy @@ -6,7 +6,8 @@ tiles [TileSet draw-tile] utils [neg] text [render-text] - systems [apply-gravity apply-collisions]) + systems [apply-gravity apply-collisions] + math [floor]) (pygame.init) @@ -17,10 +18,17 @@ (setv clock (pygame.time.Clock)) (setv running True) (setv tileset (TileSet "assets/monochrome-transparent.png" TILE_SCALING TILE_SIZE TILE_SIZE 1)) -(setv player (Player 1 (get tileset.tiles 28) TILE_SIZE 5 5)) (setv sprites-group []) -(.append sprites-group player) (setv level (load_pygame "assets/level-0.tmx")) +(setv player-pos + (let [player-objects (lfor ent (get level.layers 1) :if (= ent.type "Player") ent)] + (if (any player-objects) + (let [player-object (get player-objects 0)] + #((int (floor (/ player-object.x TILE_SIZE))) + (int (floor (/ player-object.y TILE_SIZE))))) + #(5 5)))) +(setv player (Player 1 (get tileset.tiles 28) TILE_SIZE #* player-pos)) +(.append sprites-group player) (setv macro-input-mode False) (setv macro-commands [None None None]) @@ -75,7 +83,7 @@ pygame.K_a (draw-tile screen tileset 1060 x-pos 5) None (draw-tile screen tileset 725 x-pos 5))))) - ;; Else + ;; Not in macro mode (do (for [inp ongoing_inputs] (case inp pygame.K_a (.move player #((neg player.SPEED) 0)) -- cgit v1.2.3