aboutsummaryrefslogtreecommitdiff
path: root/src/macroknight/game.hy
diff options
context:
space:
mode:
Diffstat (limited to 'src/macroknight/game.hy')
-rw-r--r--src/macroknight/game.hy32
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]