diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/02-moving-bitmp.lisp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/examples/02-moving-bitmp.lisp b/examples/02-moving-bitmp.lisp index e7faeac..425457b 100644 --- a/examples/02-moving-bitmp.lisp +++ b/examples/02-moving-bitmp.lisp @@ -9,21 +9,26 @@ (defclass bitmap-display (ww::application ) ()) (ww::defhandler move-thing - (ww::on-keydown (target code mods) + (ww::on-keydown (unit code mods) (case code - (:scancode-left (decf (ww::unit-x target) (ww::unit-width target))) - (:scancode-right (incf (ww::unit-x target) (ww::unit-width target))) - (:scancode-down (decf (ww::unit-y target) (ww::unit-height target))) - (:scancode-up (incf (ww::unit-y target) (ww::unit-height target))) + (:scancode-left (decf (ww::unit-x unit) (ww::unit-width unit))) + (:scancode-right (incf (ww::unit-x unit) (ww::unit-width unit))) + (:scancode-down (decf (ww::unit-y unit) (ww::unit-height unit))) + (:scancode-up (incf (ww::unit-y unit) (ww::unit-height unit))) (:scancode-equals - (print mods))))) + (when (or (member :lshift mods) (member :rshift mods)) + (incf (ww::unit-height unit) 20.0) + (incf (ww::unit-width unit) 20.0))) + (:scancode-minus + (decf (ww::unit-height unit) 20.0) + (decf (ww::unit-width unit) 20.0))))) (defmethod ww::boot ((app bitmap-display)) (let ((bm (make-instance 'ww::bitmap :texture (ww::get-asset "Fezghoul.png")))) (ww::refocus-on bm) - (ww::set-handler bm *move-thing*) + (ww::set-handler bm #'move-thing) (ww::add-unit app bm))) @@ -31,3 +36,6 @@ (ww::start (make-instance 'bitmap-display :scale 3.0 :asset-root #P"~/projects/wheelwork/examples/"))) + + +(start) |