diff options
Diffstat (limited to 'src/macroknight/entities.hy')
-rw-r--r-- | src/macroknight/entities.hy | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/macroknight/entities.hy b/src/macroknight/entities.hy index 50d774c..812193e 100644 --- a/src/macroknight/entities.hy +++ b/src/macroknight/entities.hy @@ -6,6 +6,7 @@ (defclass Entity [Sprite] ;;; Game entity (setv _fixed False) + (setv _type "none") (defn __init__ [self id tile tile-size x y] (.__init__ (super)) @@ -23,10 +24,14 @@ self._rect) (defn [property] surf [self] - self._surf)) + self._surf) + + (defn [property] type [self] + self._type)) (defclass LevelTile [Entity] (setv _fixed True) + (setv _type "level") (defn __init__ [self id tile tile-size x y scaling] (let [tile-width (* (.get_width tile) scaling) @@ -37,9 +42,11 @@ (.__init__ (super) id tile_ tile-size x y)))) (defclass Goal [Entity] + (setv _type "goal") (setv _fixed True)) (defclass Player [Entity] + (setv _type "player") (setv SPEED 3) (setv JUMP_IMPULSE 10) (setv MAX_JUMPING 100) @@ -47,7 +54,9 @@ (defn __init__ [self id tile tile-size x y] (.__init__ (super) id tile tile-size x y) (setv self.jumping False) - (setv self.jump-move 0)) + (setv self.jump-move 0) + (setv self.moves []) + (setv self._disp_surf (.copy self._surf))) (defn move [self move] (.append self.moves move) @@ -65,5 +74,16 @@ (defn ground [self] (setv self.jump-move 0)) + (defn animate [self] + (let [x-move (get self.total-move 0)] + (setv self._disp_surf + (cond + (< x-move 0) (pygame.transform.flip self._surf True False) + (> x-move 0) (.copy self._surf) + True self._disp_surf)))) + (defn flush [self] - (setv self.moves []))) + (setv self.moves [])) + + (defn [property] surf [self] + self._disp_surf)) |