#+TITLE: Wheelwork : Wheelwork \Wheel"work`\, n. (Mach.) : A combination of wheels, and their connection, in a machine : or mechanism. : [1913 Webster] /A Sprite System in Common Lisp for Games and GUIs/ ** Installation Ensure that sdl2 is installed on your system. *** Fetch Systems That Are Not In Quicklisp #+begin_src shell mkdir ~/wheelwork-playground cd ~/wheelwork-playground git clone https://cicadas.surf/cgit/colin/wheelwork.git wheelwork #+end_src *** Fire up Slime You'll want to let quickisp know about the =wheelwork-playground= directory #+begin_src lisp (pushnew #P"~/wheelwork-playground/" ql:*local-project-directories*) (ql:register-local-projects ) (ql:quickload :wheelwork) #+end_src *** Try the examples Then load one of the example files and call its "start" function: #+begin_src lisp (ql:quickload :wheelwork-examples) (ww.examples/6:start) #+end_src ** TODO Basic Use *** The Application The best introduction is to look at and play with the examples. What follows is a cursory explanation of how pieces are meant to fit together. **** Your Application **** The Boot Method **** The Shutdown Method *** Display Units **** Bitmaps **** Text **** Sprites **** Containers *** Events & Event Handling **** User Input Events vs Psuedo-Events **** Event Handler Macros **** Focus Events **** Perframe Events **** Display Tree Events **** Mouse Events **** Key Events *** Extending Wheelwork **** The Display Tree Protocol **** The Asset Protocol **** The Affine Protocol