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