8961421a3c9b
Let the player move
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Sat, 07 Jan 2017 16:32:09 +0000 |
parents | 4922d66cbba5 |
children | f17271ef79b7 |
branches/tags | (none) |
files | package.lisp src/main.lisp |
Changes
--- a/package.lisp Sat Jan 07 16:26:29 2017 +0000 +++ b/package.lisp Sat Jan 07 16:32:09 2017 +0000 @@ -60,6 +60,7 @@ :coords/y :coords? :coords-lookup + :coords-move-entity :visible :visible?
--- a/src/main.lisp Sat Jan 07 16:26:29 2017 +0000 +++ b/src/main.lisp Sat Jan 07 16:32:09 2017 +0000 @@ -109,6 +109,7 @@ ;;;; World Generation --------------------------------------------------------- (defun generate-world () + (clear-entities) (with-dims (30 (+ 2 2)) (with-panel-and-window (pan win *width* *height* @@ -165,6 +166,7 @@ (with-color (window (visible/color entity)) (charms:write-string-at-point window (visible/glyph entity) sx sy))))) + (defun render-sidebar (window) (charms:clear-window window) (border window) @@ -178,13 +180,20 @@ 1 2)) +(defun move-player (dx dy) + (let ((player *player*)) + (coords-move-entity player + (+ (coords/x player) dx) + (+ (coords/y player) dy)))) + (defun world-map-input (window) (case (charms:get-char window) (#\q :quit) - (:left (zapf *view-x* (clamp (1- %) 0 20000))) - (:right (zapf *view-x* (clamp (1+ %) 0 20000))) - (:up (zapf *view-y* (clamp (1- %) 0 20000))) - (:down (zapf *view-y* (clamp (1+ %) 0 20000))))) + (:left (move-player -1 0)) + (:right (move-player 1 0)) + (:up (move-player 0 -1)) + (:down (move-player 0 1)))) + (defun world-map () (with-dims ((- *screen-width* 2) (- *screen-height* 1))