blob: e55d9d1bac3b5460519aeb5b338c7a6287c8e863 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
#+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
|