diff options
Diffstat (limited to 'src/macroknight/game.hy')
-rw-r--r-- | src/macroknight/game.hy | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/macroknight/game.hy b/src/macroknight/game.hy index 4e1ce7e..95cb8b1 100644 --- a/src/macroknight/game.hy +++ b/src/macroknight/game.hy @@ -2,11 +2,11 @@ (require hyrule *) (import pygame pytmx.util_pygame [load_pygame] - entities [Player LevelTile Goal Enemy2Swords] + entities [Player LevelTile Goal Enemy] tiles [TileSet draw-tile] utils [neg] text [render-text] - systems [apply-gravity apply-collisions GoalHit] + systems [apply-gravity apply-collisions run-enemies GoalHit] math [floor]) (pygame.init) @@ -48,11 +48,11 @@ tile-x tile-y)) "Enemy1" (.append entities - (Enemy2Swords (len entities) - (get tileset.tiles 128) - TILE_SIZE - tile-x - tile-y))))) + (Enemy (len entities) + (get tileset.tiles 128) + TILE_SIZE + tile-x + tile-y))))) (setv player-pos (let [player-objects (lfor ent (get level.layers 1) :if (= ent.type "Player") ent)] @@ -61,7 +61,8 @@ #((abs-to-tile-index player-object.x) (abs-to-tile-index player-object.y))) #(5 5)))) - (setv player (Player 1 (get tileset.tiles 28) TILE_SIZE #* player-pos)) + (setv player (Player 1 [(get tileset.tiles 28) + (get tileset.tiles 29)] TILE_SIZE #* player-pos)) (.append entities player) (setv macro-input-mode False) (setv macro-wait-time 0) @@ -86,7 +87,7 @@ (setv running False) (setv game-running False)) (if macro-input-mode - (when (in event.key [pygame.K_a pygame.K_w pygame.K_a pygame.K_s pygame.K_d]) + (when (in event.key [pygame.K_a pygame.K_w pygame.K_a pygame.K_s pygame.K_d pygame.K_RETURN]) (setv (get macro-commands (.index macro-commands None)) event.key)) (if (and (= event.key pygame.K_SPACE) (= macro-wait-time 0)) (setv macro-input-mode True) @@ -115,7 +116,9 @@ pygame.K_a (.move player #((neg (* 2 TILE_SIZE)) 0)) pygame.K_s (.move player #(0 TILE_SIZE)) pygame.K_w (.move player #(0 (neg (/ player.MAX_JUMPING 2)))) - pygame.K_d (.move player #((* 2 TILE_SIZE) 0))) + pygame.K_d (.move player #((* 2 TILE_SIZE) 0)) + pygame.K_RETURN (.attack player)) + (if (= command-id (- (len macro-commands) 1)) (do (setv macro-commands [None None None]) @@ -132,6 +135,7 @@ pygame.K_d (draw-tile screen tileset 1058 x-pos 5) pygame.K_s (draw-tile screen tileset 1059 x-pos 5) pygame.K_a (draw-tile screen tileset 1060 x-pos 5) + pygame.K_RETURN (draw-tile screen tileset 329 x-pos 5) None (draw-tile screen tileset 725 x-pos 5))))) ;; Not in macro mode @@ -145,21 +149,21 @@ pygame.K_a (.move player #((neg player.SPEED) 0)) pygame.K_s (.move player #(0 1)) pygame.K_w (.jump player) - pygame.K_d (.move player #(player.SPEED 0)))) + pygame.K_d (.move player #(player.SPEED 0)) + pygame.K_RETURN (.attack player))) - - (try (when (any ongoing_inputs) (for [entity entities] (apply-collisions entity entities))) - (.animate player) + (.animate player (pygame.time.get_ticks)) (.flush player) ;; Apply systems (for [entity entities] (apply-gravity entity entities) + (run-enemies entity entities) (apply-collisions entity entities)) (except [GoalHit] |