[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs 39f6dbc6a3 049/472: Merge branch 'pacman-mechanics
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs 39f6dbc6a3 049/472: Merge branch 'pacman-mechanics-5'. Close #5 |
Date: |
Thu, 6 Jan 2022 21:59:12 -0500 (EST) |
branch: elpa/pacmacs
commit 39f6dbc6a33338b4c6eb8bbaeb045653d94f499c
Merge: af3407e676 1f32ee2489
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Merge branch 'pacman-mechanics-5'. Close #5
---
pacman.el | 42 ++++++++++++++++++++++++++++++------------
1 file changed, 30 insertions(+), 12 deletions(-)
diff --git a/pacman.el b/pacman.el
index ec140fa051..6d3eb6b586 100644
--- a/pacman.el
+++ b/pacman.el
@@ -52,8 +52,25 @@
(list :row 0
:column 0
:direction 'right
- :animation (pacman-load-anim "sprites/Red-Ghost-Up.json"
- "sprites/Red-Ghost-Up.png")))
+ :animation (pacman-load-anim "sprites/Pacman-Chomping-Right.json"
+ "sprites/Pacman-Chomping-Right.png")))
+(defvar pacman-empty-cell nil)
+(setq pacman-empty-cell
+ (list :animation (pacman-make-anim '((0 0 40 40))
+ (create-image
+ (make-vector 40 (make-bool-vector 40
nil)) 'xbm t :width 40 :height 40))))
+
+(defun pacman-init-board (width height player-state)
+ (let ((board (make-vector height nil)))
+ (dotimes (row height)
+ (aset board row (make-vector width pacman-empty-cell)))
+ (aset (aref board 0) 0 player-state)
+ board))
+
+(defvar pacman-board nil)
+(setq pacman-board (pacman-init-board pacman-board-width
+ pacman-board-height
+ pacman-player-state))
(define-derived-mode pacman-mode special-mode "pacman-mode"
(define-key pacman-mode-map (kbd "<up>") 'pacman-up)
@@ -93,17 +110,18 @@
(pacman-anim-object-next-frame pacman-player-state))
(pacman-render-state))))
+(defun pacman-render-object (anim-object)
+ (let* ((anim (plist-get anim-object :animation))
+ (sprite-sheet (plist-get anim :sprite-sheet))
+ (current-frame (pacman-anim-get-frame anim)))
+ (pacman-insert-image sprite-sheet current-frame)))
+
(defun pacman-render-state ()
- (let* ((player-anim (plist-get pacman-player-state :animation))
- (player-vector (pacman-anim-get-frame player-anim))
- (player-sprite-sheet (plist-get player-anim :sprite-sheet)))
- (dotimes (row pacman-board-height)
- (dotimes (column pacman-board-width)
- (if (and (equal row (plist-get pacman-player-state :row))
- (equal column (plist-get pacman-player-state :column)))
- (pacman-insert-image player-sprite-sheet player-vector)
- (pacman-insert-image player-sprite-sheet player-vector)))
- (insert "\n"))))
+ (dotimes (row pacman-board-height)
+ (dotimes (column pacman-board-width)
+ (let ((anim-object (aref (aref pacman-board row) column)))
+ (pacman-render-object anim-object)))
+ (insert "\n")))
(defun pacman-up ()
(interactive)
- [nongnu] elpa/pacmacs 515b977a4c 026/472: Add UT for pacman-anim-next-frame function (#22), (continued)
- [nongnu] elpa/pacmacs 515b977a4c 026/472: Add UT for pacman-anim-next-frame function (#22), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 03bdb3388f 012/472: Add README. Close #18, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 8283a893c2 018/472: Update README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 0828edabf2 019/472: Don't remove elc files during Travis build (#20), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 63bfb71c85 029/472: Add UT for pacman-aseprite-frame-get-order (#22), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 3554251103 033/472: Add coveralls badge (#27), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 56968d5966 034/472: Require undercover in test-helpers (#27), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 833e2d8de2 041/472: Add a note about the licensing to README (#28), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs cb29133875 045/472: Add UT for pacman-load-anim function, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 14e4a5a771 046/472: Mystical cookies appear! Close #15, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 39f6dbc6a3 049/472: Merge branch 'pacman-mechanics-5'. Close #5,
ELPA Syncer <=
- [nongnu] elpa/pacmacs 4aa010be6e 051/472: Fix the Aseprite animation UTs. Close #31, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 4e935a6d89 050/472: The 4th mystical cookie appears! Close #30, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs fbde339ff0 052/472: All the mystical cookies are merged into one! Close #15, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1efc678194 053/472: Implement сonveyor rendering. Close #35, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1414723d42 059/472: Implement wall mechanics. Close #36, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 420c485197 054/472: Implement pacman mechanics. Close #32, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs c20aa8089c 058/472: Implement plist-bind macro. Close #47, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 07e18ca1e6 067/472: Implement pills. Close #34, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs ef0cd69d99 072/472: Add copyright header to pacman-utils module, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 66f585899a 080/472: Fix pacman image UTs, ELPA Syncer, 2022/01/06