emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/pacmacs af3407e676 047/472: Sprite sheets as part of anim


From: ELPA Syncer
Subject: [nongnu] elpa/pacmacs af3407e676 047/472: Sprite sheets as part of anim object. Close #24
Date: Thu, 6 Jan 2022 21:59:11 -0500 (EST)

branch: elpa/pacmacs
commit af3407e6765b9adc96dc8b98c5192108beb1882a
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>

    Sprite sheets as part of anim object. Close #24
---
 pacman-anim.el | 15 ++++++++++-----
 pacman.el      | 14 ++++++--------
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/pacman-anim.el b/pacman-anim.el
index 832338cb11..8dedc4b128 100644
--- a/pacman-anim.el
+++ b/pacman-anim.el
@@ -34,17 +34,22 @@
 
 (require 'json)
 
-(defun pacman-make-anim (frames)
+(require 'pacman-resources)
+
+(defun pacman-make-anim (frames sprite-sheet)
   (list :frames frames
-        :current-frame 0))
+        :current-frame 0
+        :sprite-sheet sprite-sheet))
 
-(defun pacman-load-anim (aseprite-json-file)
+(defun pacman-load-anim (aseprite-json-file sprite-sheet-file)
   (let* ((aseprite-json (json-read-file aseprite-json-file))
-         (aseprite-frames (cdr (assoc 'frames aseprite-json))))
+         (aseprite-frames (cdr (assoc 'frames aseprite-json)))
+         (sprite-sheet (pacman-load-resource sprite-sheet-file)))
     (pacman-make-anim
      (mapcar 'pacman-convert-aseprite-frame
              (sort aseprite-frames
-                   'pacman-compare-aseprite-frames)))))
+                   'pacman-compare-aseprite-frames))
+     sprite-sheet)))
 
 (defun pacman-aseprite-frame-get-order (aseprite-frame)
   (let ((frame-name (symbol-name (car aseprite-frame))))
diff --git a/pacman.el b/pacman.el
index b80c69f580..ec140fa051 100644
--- a/pacman.el
+++ b/pacman.el
@@ -52,11 +52,8 @@
       (list :row 0
             :column 0
             :direction 'right
-            :animation (pacman-load-anim "sprites/Red-Ghost-Down.json")))
-
-(defvar pacman-resource nil)
-(setq pacman-resource
-      (pacman-load-resource "sprites/Red-Ghost-Down.png"))
+            :animation (pacman-load-anim "sprites/Red-Ghost-Up.json"
+                                         "sprites/Red-Ghost-Up.png")))
 
 (define-derived-mode pacman-mode special-mode "pacman-mode"
   (define-key pacman-mode-map (kbd "<up>") 'pacman-up)
@@ -98,13 +95,14 @@
 
 (defun pacman-render-state ()
   (let* ((player-anim (plist-get pacman-player-state :animation))
-         (player-vector (pacman-anim-get-frame player-anim)))
+         (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 pacman-resource player-vector)
-          (pacman-insert-image pacman-resource player-vector)))
+            (pacman-insert-image player-sprite-sheet player-vector)
+          (pacman-insert-image player-sprite-sheet player-vector)))
       (insert "\n"))))
 
 (defun pacman-up ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]