From 5e9e9990495cabb82710f48334ac029005eca11f Mon Sep 17 00:00:00 2001 From: Boutade Date: Sun, 13 Oct 2019 09:54:48 -0500 Subject: altered to share tilesheet config, and to accomodate changed names --- assets.lisp | 76 +++++++++++++++++++++++++------------------------------------ 1 file changed, 31 insertions(+), 45 deletions(-) (limited to 'assets.lisp') 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*) + + + -- cgit v1.2.3