[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs d2cf3bd4ba 144/472: Fix hitting ghost visibility b
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs d2cf3bd4ba 144/472: Fix hitting ghost visibility bug. Close #78 |
Date: |
Thu, 6 Jan 2022 21:59:20 -0500 (EST) |
branch: elpa/pacmacs
commit d2cf3bd4baa16e02ad07774e2edf37952e9d5c8c
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Fix hitting ghost visibility bug. Close #78
---
pacmacs.el | 35 +++++++++++++++++++++++++----------
1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/pacmacs.el b/pacmacs.el
index 700d2d4637..f9cef87e1f 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -130,6 +130,8 @@
:column column
:init-row row
:init-column column
+ :prev-row row
+ :prev-column column
:direction 'right
:current-animation (pacmacs-load-anim "Red-Ghost-Right")
:direction-animations (list 'left (pacmacs-load-anim "Red-Ghost-Left")
@@ -144,6 +146,8 @@
:column column
:init-row row
:init-column column
+ :prev-row row
+ :prev-column column
:direction 'right
:current-animation (pacmacs-load-anim "Pacman-Chomping-Right")
:direction-animations (list 'left (pacmacs-load-anim
"Pacman-Chomping-Left")
@@ -160,6 +164,13 @@
(plist-put game-object :row init-row)
(plist-put game-object :column init-column)))
+(defun pacmacs--step-back-object (game-object)
+ (plist-bind ((prev-row :prev-row)
+ (prev-column :prev-column))
+ game-object
+ (plist-put game-object :row prev-row)
+ (plist-put game-object :column prev-column)))
+
(defun pacmacs--kill-buffer-and-its-window (buffer-or-name)
(let ((buffer-window (get-buffer-window buffer-or-name)))
(if (and buffer-window
@@ -197,13 +208,15 @@
(plist-put game-object :direction direction)
(plist-put game-object :current-animation (plist-get direction-animations
direction))))
-(defun pacmacs-step-object (game-object)
+(defun pacmacs--step-object (game-object)
(plist-bind ((row :row)
(column :column)
(direction :direction)
(speed-counter :speed-counter)
(speed :speed))
game-object
+ (plist-put game-object :prev-row row)
+ (plist-put game-object :prev-column column)
(if (zerop speed-counter)
(let* ((new-point (pacmacs--step-point pacmacs-board row column
direction))
(new-row (car new-point))
@@ -290,7 +303,7 @@
(defun pacmacs--step-ghosts ()
(dolist (ghost pacmacs-ghosts)
(pacmacs--track-object ghost)
- (pacmacs-step-object ghost)))
+ (pacmacs--step-object ghost)))
(defun pacmacs--detect-pill-collision ()
(plist-bind ((row :row)
@@ -320,13 +333,17 @@
(pacmacs--recalc-track-board)
(if pacmacs-pills
- (if (pacmacs--ghost-collision-p)
- (pacmacs--switch-to-death-state)
- (pacmacs-step-object pacmacs-player-state)
- (pacmacs--detect-pill-collision)
+ (progn
+ (pacmacs--step-object pacmacs-player-state)
(if (pacmacs--ghost-collision-p)
- (pacmacs--switch-to-death-state)
- (pacmacs--step-ghosts)))
+ (progn (pacmacs--step-back-object pacmacs-player-state)
+ (pacmacs--switch-to-death-state))
+ (pacmacs--detect-pill-collision)
+ (pacmacs--step-ghosts)
+ (when (pacmacs--ghost-collision-p)
+ (dolist (ghost pacmacs-ghosts)
+ (pacmacs--step-back-object ghost))
+ (pacmacs--switch-to-death-state))))
(pacmacs--switch-to-level-beaten-state)))
(defun pacmacs-death-state-logic ()
@@ -347,8 +364,6 @@
(decf pacmacs-waiting-counter
pacmacs-tick-duration-ms)))
-
-
(defun pacmacs--put-object (anim-object)
(when anim-object
(plist-bind ((row :row)
- [nongnu] elpa/pacmacs ba7ad0349d 082/472: Rename pacman to pacmacs. Close #66, (continued)
- [nongnu] elpa/pacmacs ba7ad0349d 082/472: Rename pacman to pacmacs. Close #66, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs c447091a19 085/472: Fix description in the game headers, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e85c81b077 090/472: Enable entire code base for coverage (#70), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e3d914a1ea 097/472: Dropping support for Emacs 24.1 and 24.2. Close #71, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 4b08605994 093/472: UTs for duration frame logic. Close #60, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs c865fda214 120/472: Merge branch 'board-refactoring-74'. Close #74, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 7e8970628c 122/472: Add sprites for Pacman Death animation. Close #44, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 99a90b9c87 125/472: Fix the tunneling effect. Close #88, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs d49cb4afe3 128/472: Fix misspelling of the word `life` in single form, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 22dd5e5cf9 133/472: Rename pacmacs--detect-ghost-collision function (#97), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs d2cf3bd4ba 144/472: Fix hitting ghost visibility bug. Close #78,
ELPA Syncer <=
- [nongnu] elpa/pacmacs 5db26b2e3d 154/472: Make the Game Over sign even more smaller, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 5b32c6f310 155/472: Package resources with Cask (#95), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs db03c57347 158/472: Add autoload cookie for pacmacs-start function, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 7285f61d45 164/472: Require pacmacs-board in the pacmacs-render module, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs b00db2f7fa 240/472: Use hashmap for tile cache instead of vector (#131), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 838833da41 414/472: Go to the beginning if score is not featured, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 75f7ddd459 418/472: Add UT for position-of-new-score func (#134), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs fb4885d0fc 420/472: Add UT for make-submit-nickname-action func (#134), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs f53a6d57b7 451/472: Fix the compilation error (#203), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 9d839d08c6 460/472: Bottom padding for object board (#203), ELPA Syncer, 2022/01/06