[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs 13f24ef937 171/472: Implement pause. Close #112
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs 13f24ef937 171/472: Implement pause. Close #112 |
Date: |
Thu, 6 Jan 2022 21:59:22 -0500 (EST) |
branch: elpa/pacmacs
commit 13f24ef937f7e46398d5cd89c8ef1413747fed15
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Implement pause. Close #112
---
pacmacs.el | 61 +++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 37 insertions(+), 24 deletions(-)
diff --git a/pacmacs.el b/pacmacs.el
index c85d583b58..df1f115a99 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -66,7 +66,9 @@
(defvar pacmacs-board nil)
(defvar pacmacs-track-board nil)
-;;; play death prepare level-beaten
+(defvar pacmacs-play-pause nil)
+
+;;; play death prepare level-beaten game-over
(defvar pacmacs-game-state 'play)
(defvar pacmacs-lives 3)
@@ -82,6 +84,7 @@
(define-key pacmacs-mode-map (kbd "<left>") 'pacmacs-left)
(define-key pacmacs-mode-map (kbd "<right>") 'pacmacs-right)
(define-key pacmacs-mode-map (kbd "q") 'pacmacs-quit)
+ (define-key pacmacs-mode-map (kbd "SPC") 'pacmacs-pause)
(add-hook 'kill-buffer-hook 'pacmacs-destroy nil t)
(setq cursor-type nil)
(setq truncate-lines t))
@@ -287,7 +290,6 @@
(defun pacmacs-tick ()
(interactive)
-
(cond
((equal pacmacs-game-state 'play)
(pacmacs-play-state-logic))
@@ -329,24 +331,25 @@
(pacmacs--ghost-at-p row column)))
(defun pacmacs-play-state-logic ()
- (pacmacs--anim-object-next-frame pacmacs-player-state
pacmacs-tick-duration-ms)
- (pacmacs--anim-object-list-next-frame pacmacs-ghosts
pacmacs-tick-duration-ms)
- (pacmacs--anim-object-list-next-frame pacmacs-pills pacmacs-tick-duration-ms)
-
- (pacmacs--recalc-track-board)
- (if pacmacs-pills
- (progn
- (pacmacs--step-object pacmacs-player-state)
- (if (pacmacs--ghost-collision-p)
- (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)))
+ (when (not pacmacs-play-pause)
+ (pacmacs--anim-object-next-frame pacmacs-player-state
pacmacs-tick-duration-ms)
+ (pacmacs--anim-object-list-next-frame pacmacs-ghosts
pacmacs-tick-duration-ms)
+ (pacmacs--anim-object-list-next-frame pacmacs-pills
pacmacs-tick-duration-ms)
+
+ (pacmacs--recalc-track-board)
+ (if pacmacs-pills
+ (progn
+ (pacmacs--step-object pacmacs-player-state)
+ (if (pacmacs--ghost-collision-p)
+ (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 ()
(pacmacs--anim-object-next-frame pacmacs-player-state
@@ -386,6 +389,7 @@
(defun pacmacs--switch-to-play-state ()
(setq pacmacs-game-state 'play)
+ (setq pacmacs-play-pause nil)
(pacmacs--reset-object-position pacmacs-player-state)
(dolist (ghost pacmacs-ghosts)
(pacmacs--reset-object-position ghost))
@@ -442,24 +446,33 @@
(defun pacmacs-up ()
(interactive)
- (when (equal pacmacs-game-state 'play)
+ (when (and (equal pacmacs-game-state 'play)
+ (not pacmacs-play-pause))
(pacmacs--switch-direction pacmacs-player-state 'up)))
(defun pacmacs-down ()
(interactive)
- (when (equal pacmacs-game-state 'play)
+ (when (and (equal pacmacs-game-state 'play)
+ (not pacmacs-play-pause))
(pacmacs--switch-direction pacmacs-player-state 'down)))
(defun pacmacs-left ()
(interactive)
- (when (equal pacmacs-game-state 'play)
+ (when (and (equal pacmacs-game-state 'play)
+ (not pacmacs-play-pause))
(pacmacs--switch-direction pacmacs-player-state 'left)))
(defun pacmacs-right ()
(interactive)
- (when (equal pacmacs-game-state 'play)
+ (when (and (equal pacmacs-game-state 'play)
+ (not pacmacs-play-pause))
(pacmacs--switch-direction pacmacs-player-state 'right)))
+(defun pacmacs-pause ()
+ (interactive)
+ (when (equal pacmacs-game-state 'play)
+ (setq pacmacs-play-pause (not pacmacs-play-pause))))
+
(defun pacmacs--get-list-of-levels ()
(->> (directory-files (pacmacs--find-resource-file "./maps/"))
(-map #'pacmacs--levelname-from-filename)
- [nongnu] elpa/pacmacs a97d195e12 391/472: Merge pull request #188 from codingteam/qfix/move-measure-time-to-rr, (continued)
- [nongnu] elpa/pacmacs a97d195e12 391/472: Merge pull request #188 from codingteam/qfix/move-measure-time-to-rr, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 75e26090e5 393/472: Add UT for clear-wall-tiles-cache, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1b658fe6aa 405/472: Calc new score position (#134), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 508d15dff5 415/472: Fix compilation errors (#134), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 953f9901d9 421/472: Remove register-new-score function (#134), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 70864bb773 447/472: Indicate that score table is empty (#203), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs b9a63f204b 449/472: Rename render-board to render-object-board (#203), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs cd50cff10c 448/472: Disable cursor for score table (#203), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs ee83af998d 467/472: Replace deprecated dash-functional dependency, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 31853e0341 166/472: Update README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 13f24ef937 171/472: Implement pause. Close #112,
ELPA Syncer <=
- [nongnu] elpa/pacmacs cf693bef1c 173/472: UTs for pacmacs--levelname-from-filename function, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 239e27b0f2 178/472: Update README.md, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs d128a6f057 183/472: Enable lexical binding, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 9f9a514129 165/472: Add MELPA badge. Close #93, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 02c5a40cd3 193/472: Rename cell get/set as wrapped operations (#105), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs bddb837ffd 200/472: Rename object vars according to convension (#126), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs a3b2a5ce44 216/472: Replace pacmacs--file-content with f-read-text (#122), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 8f9b38b16e 233/472: Revert all the refactoring in the scope of #81, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 52fec0d180 241/472: Normalize wall generating bits (#131), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e06beacb11 242/472: Assign wall tiles on load map (#131), ELPA Syncer, 2022/01/06