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.hy42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/macroknight/game.hy b/src/macroknight/game.hy
index 5b230ac..32ba2a8 100644
--- a/src/macroknight/game.hy
+++ b/src/macroknight/game.hy
@@ -11,15 +11,18 @@
(setv TILE_SIZE (* TILE_SCALING 16))
(setv GRAVITY 5)
+(defn neg [value]
+ (* -1 value))
+
(defn invert [move]
- #((* -1 (get move 0))
- (* -1 (get move 1))))
+ #((neg (get move 0))
+ (neg (get move 1))))
(defclass TileSet []
(defn __init__ [self image tile-w tile-h [padding 0]]
(setv self.sheet
- (let [surf (pygame.image.load "assets/tileset_legacy.png")]
+ (let [surf (pygame.image.load "assets/monochrome-transparent.png")]
(if (!= TILE_SCALING 1)
(pygame.transform.scale
surf
@@ -34,6 +37,7 @@
(.blit tile self.sheet #(0 0) #(x y tile-w tile-h))
tile)))))
+
;; Define systems here
(defn apply-gravity [entity entities]
(when (not entity.fixed)
@@ -94,7 +98,7 @@
(setv self.jumping True)
(when (< self.jump_move self.MAX_JUMPING)
(setv self.jump_move (+ self.jump_move self.JUMP_IMPULSE))
- (.move self #(0 (* -1 self.JUMP_IMPULSE)))))
+ (.move self #(0 (neg self.JUMP_IMPULSE)))))
(defn ground [self]
(setv self.jump_move 0))
@@ -106,7 +110,7 @@
(setv clock (pygame.time.Clock))
(setv running True)
-(setv tiles (TileSet "assets/tileset_legacy.png" TILE_SIZE TILE_SIZE 1))
+(setv tiles (TileSet "assets/monochrome-transparent.png" TILE_SIZE TILE_SIZE 1))
(setv player (Player (get tiles.tiles 28) 0 0))
(setv sprites-group [])
@@ -115,7 +119,7 @@
(setv macro-input-mode False)
(setv macro-commands [None None None])
-(for [tiledef (enumerate (.tiles (get level.layers 1)))]
+(for [tiledef (enumerate (.tiles (get level.layers 0)))]
(.append sprites-group (LevelTile (get tiledef 0) #* (get tiledef 1))))
(setv ongoing_inputs [])
@@ -142,7 +146,7 @@
pygame.KEYUP (when (in event.key ongoing_inputs)
(.remove ongoing_inputs event.key))))
- (.fill screen "#472d3c")
+ (.fill screen "#000000")
(if macro-input-mode
;; If the commands list is full
@@ -150,33 +154,33 @@
;; Process commands
(do
(for [command macro-commands]
- (print command)
(case command
- pygame.K_a (.move player #((* -1 player.SPEED) 0))
+ pygame.K_a (.move player #((neg TILE_SIZE) 0))
pygame.K_s (.move player #(0 1))
- pygame.K_w (.move player #(0 player.MAX_JUMPING))
- pygame.K_d (.move player #(player.SPEED 0))))
+ pygame.K_w (.move player #(0 (neg TILE_SIZE)))
+ pygame.K_d (.move player #(TILE_SIZE 0))))
(setv macro-commands [None None None])
(setv macro-input-mode False))
- (do (draw-tile screen 757 3 1)
+ (do (draw-tile screen 774 3 1)
(for [#(num command) (enumerate macro-commands)]
(let [x-pos (+ 4 num)]
(case command
- pygame.K_w (draw-tile screen 700 x-pos 1)
- pygame.K_d (draw-tile screen 701 x-pos 1)
- pygame.K_s (draw-tile screen 702 x-pos 1)
- pygame.K_a (draw-tile screen 703 x-pos 1))))))
+ pygame.K_w (draw-tile screen 1057 x-pos 1)
+ pygame.K_d (draw-tile screen 1058 x-pos 1)
+ pygame.K_s (draw-tile screen 1059 x-pos 1)
+ pygame.K_a (draw-tile screen 1060 x-pos 1))))))
(do (for [inp ongoing_inputs]
(case inp
- pygame.K_a (.move player #((* -1 player.SPEED) 0))
+ 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))))
- (for [sprite sprites-group]
- (apply-collisions sprite sprites-group))
+ (when (any ongoing_inputs)
+ (for [sprite sprites-group]
+ (apply-collisions sprite sprites-group)))
;; Apply systems
(for [sprite sprites-group]