aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/macroknight/game.hy16
-rw-r--r--src/macroknight/tiles.hy4
2 files changed, 14 insertions, 6 deletions
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))
diff --git a/src/macroknight/tiles.hy b/src/macroknight/tiles.hy
index 40692e7..f9e112d 100644
--- a/src/macroknight/tiles.hy
+++ b/src/macroknight/tiles.hy
@@ -1,13 +1,13 @@
(import pygame)
(defclass TileSet []
- (defn __init__ [self image scaling tile-w tile-h [padding 0]]
+ (defn __init__ [self image-file scaling tile-w tile-h [padding 0]]
(setv self.tile-w tile-w)
(setv self.tile-h tile-h)
(setv self.scaling scaling)
(setv self.sheet
- (let [surf (pygame.image.load "assets/monochrome-transparent.png")
+ (let [surf (pygame.image.load image-file)
map-width (* (.get_width surf) self.scaling)
map-height (* (.get_height surf) self.scaling)]
(if (!= self.scaling 1)