From 229a4caaa430ec5e20e9ad57ccb8c491c5ed653f Mon Sep 17 00:00:00 2001 From: Colin Okay Date: Fri, 24 Jun 2022 09:28:05 -0500 Subject: [example] altering rotation on click --- examples/02-moving-bitmp.lisp | 8 ++++++-- wheelwork.lisp | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/examples/02-moving-bitmp.lisp b/examples/02-moving-bitmp.lisp index ca32b44..318bed4 100644 --- a/examples/02-moving-bitmp.lisp +++ b/examples/02-moving-bitmp.lisp @@ -63,6 +63,10 @@ (ww::on-mousedown () (format t "~a was clicked at ~a,~a!~%" target x y))) +(ww::defhandler flip-on-click + (ww::on-mousedown () + (incf (ww::unit-rotation target) (ww::radians 180) ))) + (ww::defhandler mouse-over (ww::on-mousemotion () (print (list target x y xrel yrel state)))) @@ -99,8 +103,8 @@ (setf (ww::unit-x bm2) 90 (ww::unit-y bm2) 90) (ww::set-handler bm2 #'move-thing) - (ww::set-handler bm2 #'thing-clicked) - (ww::set-handler bm2 #'look-at-me ) + (ww::set-handler bm2 #'flip-on-click ) + (ww::set-handler bm2 #'look-at-me) (ww::set-handler bm2 #'look-away) (ww::set-handler bm2 #'wheelie) (ww::add-unit app bm2))) diff --git a/wheelwork.lisp b/wheelwork.lisp index 6cebb66..8638c60 100644 --- a/wheelwork.lisp +++ b/wheelwork.lisp @@ -876,3 +876,11 @@ fires when the FOCUS slot of the current APPLICATION instance is changed. ,(intern (symbol-name target)))) ,@body))) +;;; Utility + +(define-symbol-macro +pi-over-180+ 0.017453292519943295d0) + +(defun radians (degrees) + "Converse DEGREES to radians" + (* degrees +pi-over-180+)) + -- cgit v1.2.3