aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2025-05-24 20:34:03 +0100
committerGene Pasquet <dev@etenil.net>2025-05-24 20:34:03 +0100
commit4fd3c145865cde9f6afaddf6f1eed376ba0384bb (patch)
tree1120a656f67c504b2243e53cef2de57b7eccb208
parent7cd219920f1bee8fb7ba24e83dd6a0c6a73e1512 (diff)
Consolidate entities
-rw-r--r--src/macroknight/entities.hy95
1 files changed, 30 insertions, 65 deletions
diff --git a/src/macroknight/entities.hy b/src/macroknight/entities.hy
index b171069..af684c2 100644
--- a/src/macroknight/entities.hy
+++ b/src/macroknight/entities.hy
@@ -69,22 +69,18 @@
(setv _type "goal")
(setv _fixed True))
-(defclass Player [Entity]
- (setv _type "player")
- (setv SPEED 3)
- (setv JUMP_IMPULSE 10)
- (setv MAX_JUMPING 100)
+
+(defclass Character [Entity]
+ (setv _type "enemy")
(defn __init__ [self id tiles tile-size x y]
(.__init__ (super) id (get tiles 0) tile-size x y)
(setv self.tiles tiles)
- (setv self.jumping False)
- (setv self.jump-move 0)
- (setv self.moves [])
- (setv self._disp_surf (.copy self._surf))
(setv self.facing Direction.RIGHT)
(setv self.attacking False)
- (setv self.animate-end 0))
+ (setv self.animate-end 0)
+ (.flush self)
+ (setv self._disp_surf (.copy self._surf)))
(defn move [self move]
(.append self.moves move)
@@ -93,17 +89,11 @@
(setv self.facing
(.x-from-move Direction move))))
- (defn [property] total-move [self]
- (merge-moves self.moves))
-
(defn attack [self]
(setv self.attacking True))
- (defn jump [self]
- (setv self.jumping True)
- (when (< self.jump-move self.MAX_JUMPING)
- (setv self.jump-move (+ self.jump-move self.JUMP_IMPULSE))
- (.move self #(0 (neg self.JUMP_IMPULSE)))))
+ (defn flush [self]
+ (setv self.moves []))
(defn ground [self]
(setv self.jump-move 0))
@@ -113,70 +103,45 @@
(when (and self.attacking (= self.animate-end 0))
(setv self.animate-end (+ ticks 200))
(.blit self._surf (get self.tiles 1) #(0 0)))
+
(when (and self.attacking (> ticks self.animate-end))
(setv self.animate-end 0)
(setv self.attacking False)
+ (raise PlayerKilled)
(.blit self._surf (get self.tiles 0) #(0 0)))
- ;; Facing direction
(setv self._disp_surf
(case self.facing
Direction.LEFT (pygame.transform.flip self._surf True False)
Direction.RIGHT (.copy self._surf)))
-
(.flush self))
-
- (defn flush [self]
- (setv self.moves []))
+
+ (defn [property] total-move [self]
+ (merge-moves self.moves))
(defn [property] surf [self]
self._disp_surf))
-(defclass Enemy [Entity]
- (setv _type "enemy")
-
- (defn __init__ [self id tiles tile-size x y]
- (.__init__ (super) id (get tiles 0) tile-size x y)
- (setv self.tiles tiles)
- (setv self.facing Direction.RIGHT)
- (setv self.attacking False)
- (setv self.animate-end 0)
- (.flush self))
-
- (defn move [self move]
- (.append self.moves move)
- (.move_ip self._rect (get move 0) (get move 1))
- (when (!= (get move 0) 0)
- (setv self.facing
- (.x-from-move Direction move))))
-
- (defn attack [self]
- (setv self.attacking True))
-
- (defn flush [self]
- (setv self.moves []))
- (defn ground [self])
+(defclass Player [Character]
+ (setv _type "player")
+ (setv SPEED 3)
+ (setv JUMP_IMPULSE 10)
+ (setv MAX_JUMPING 100)
- (defn animate [self ticks]
- ;; Attack animation
- (when (and self.attacking (= self.animate-end 0))
- (setv self.animate-end (+ ticks 200))
- (.blit self._surf (get self.tiles 1) #(0 0)))
- (when (and self.attacking (> ticks self.animate-end))
- (setv self.animate-end 0)
- (setv self.attacking False)
- (raise PlayerKilled)
- (.blit self._surf (get self.tiles 0) #(0 0)))
+ (defn __init__ [self id tiles tile-size x y]
+ (.__init__ (super) id tiles tile-size x y)
+ (setv self.jumping False)
+ (setv self.jump-move 0))
- (setv self._disp_surf
- (case self.facing
- Direction.LEFT (pygame.transform.flip self._surf True False)
- Direction.RIGHT (.copy self._surf)))
- (.flush self))
-
(defn [property] total-move [self]
(merge-moves self.moves))
- (defn [property] surf [self]
- self._disp_surf))
+ (defn jump [self]
+ (setv self.jumping True)
+ (when (< self.jump-move self.MAX_JUMPING)
+ (setv self.jump-move (+ self.jump-move self.JUMP_IMPULSE))
+ (.move self #(0 (neg self.JUMP_IMPULSE))))))
+
+(defclass Enemy [Character]
+ (setv _type "Enemy"))