diff options
author | Boutade <thegoofist@protonmail.com> | 2019-10-13 09:54:48 -0500 |
---|---|---|
committer | Boutade <thegoofist@protonmail.com> | 2019-10-13 09:54:48 -0500 |
commit | 5e9e9990495cabb82710f48334ac029005eca11f (patch) | |
tree | 7a45da80e474f9814045e0758e8c025e67d8dfea /assets.lisp | |
parent | d3e49dd414963c2b7885a9a45accd116534e764e (diff) |
altered to share tilesheet config, and to accomodate changed names
Diffstat (limited to 'assets.lisp')
-rw-r--r-- | assets.lisp | 76 |
1 files changed, 31 insertions, 45 deletions
diff --git a/assets.lisp b/assets.lisp index b57ace6..0d4848b 100644 --- a/assets.lisp +++ b/assets.lisp @@ -3,61 +3,35 @@ (in-package #:the-price-of-a-cup-of-coffee) ;;; Utility Functions - -(defun make-source-rects (tile-defs) - "Accepts a TILE-DEFS list and adds an SDL2:RECT instance to each keyed to :RECT" - (mapcar - (lambda (tl) - (list* :rect - (sdl2:make-rect (getf tl :x) - (getf tl :y) - (getf tl :width) - (getf tl :height)) - tl)) - tile-defs)) - (defun find-tile-rect (tile-defs name) "Return the rect for the tile with NAME in TILE-DEFS list." (let-when (tl (find name tile-defs :key (lambda (tl) (getf tl :name)) :test #'string-equal)) - (getf tl :rect))) + (sdl2:make-rect (getf tl :x) + (getf tl :y) + (getf tl :width) + (getf tl :height)))) (defun select-tile-rects (tile-defs &rest names) (map 'vector ($ #'find-tile-rect tile-defs _) names)) +(defstruct (sprite-faces (:conc-name "")) + facing-down walking-down facing-up walking-up + facing-left walking-left facing-right walking-right) (defun create-sprite-faces (defs) - (list :facing-down (select-tile-rects defs "front") - :walking-down (select-tile-rects defs "walkforward1" "front" "walkforward2" "front") - :facing-up (select-tile-rects defs "back") - :walking-up (select-tile-rects defs "walkback1" "back" "walkback2" "back") - :facing-left (select-tile-rects defs "profileleft") - :walking-left (select-tile-rects defs "walkleft1" "profileleft" "walkleft2" "profileleft") - :facing-right (select-tile-rects defs "profileright") - :walking-right (select-tile-rects defs "walkright1" "profileright" "walkright1" "profileright"))) - -;;; Nance Assets - -(defparameter +nance-sheet-image+ "assets/Nance.png") - -(defvar *nance-tile-defs* - '((:NAME "Back" :X 256 :Y 128 :WIDTH 64 :HEIGHT 128) - (:NAME "Front" :X 320 :Y 0 :WIDTH 64 :HEIGHT 128) - (:NAME "ProfileLeft" :X 192 :Y 128 :WIDTH 64 :HEIGHT 128) - (:NAME "ProfileRight" :X 256 :Y 0 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkBack1" :X 64 :Y 128 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkBack2" :X 128 :Y 128 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkForward1" :X 0 :Y 256 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkForward2" :X 192 :Y 0 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkLeft1" :X 128 :Y 0 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkLeft2" :X 0 :Y 128 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkRight1" :X 64 :Y 0 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkRight2" :X 0 :Y 0 :WIDTH 64 :HEIGHT 128))) - -(defparameter +suit-sheet-image+ "assets/Suit.png") - -(defvar *suit-tile-defs* + (make-sprite-faces + :facing-down (select-tile-rects defs "front") + :walking-down (select-tile-rects defs "walkforward1" "front" "walkforward2" "front") + :facing-up (select-tile-rects defs "back") + :walking-up (select-tile-rects defs "walkback1" "back" "walkback2" "back") + :facing-left (select-tile-rects defs "leftprofile") + :walking-left (select-tile-rects defs "walkleft1" "leftprofile" "walkleft2" "leftprofile") + :facing-right (select-tile-rects defs "rightprofile") + :walking-right (select-tile-rects defs "walkright1" "rightprofile" "walkright1" "rightprofile"))) + +(defparameter +tile-defs+ '((:NAME "Back" :X 256 :Y 128 :WIDTH 64 :HEIGHT 128) (:NAME "Front" :X 320 :Y 0 :WIDTH 64 :HEIGHT 128) (:NAME "LeftProfile" :X 192 :Y 128 :WIDTH 64 :HEIGHT 128) @@ -69,6 +43,18 @@ (:NAME "WalkLeft1" :X 128 :Y 0 :WIDTH 64 :HEIGHT 128) (:NAME "WalkLeft2" :X 0 :Y 128 :WIDTH 64 :HEIGHT 128) (:NAME "WalkRight1" :X 64 :Y 0 :WIDTH 64 :HEIGHT 128) - (:NAME "WalkRight2" :X 0 :Y 0 :WIDTH 64 :HEIGHT 128)) + (:NAME "WalkRight2" :X 0 :Y 0 :WIDTH 64 :HEIGHT 128))) + +(defparameter +shared-faces+ + (create-sprite-faces +tile-defs+)) + +(defparameter +nance-sheet-image+ "assets/Nance.png") +(defparameter +suit-sheet-image+ "assets/Suit.png") + +(defvar *nance-texture*) +(defvar *suit-texture*) + + + |