aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.org
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