Mercurial > molko
annotate README.md @ 409:6011ad866e99
ui: delete action functions
The handling of actions is done without taking care of the return value which
make it impossible to detect UI elements since it's a immediate mode like
implementation.
Users are encouraged to write code like instead:
```
if (button_handle(&b, &ev)) {
// Do something.
}
```
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 09 Sep 2022 09:27:17 +0200 |
parents | 19782ea1cf4a |
children | 6947c1fefe5c |
rev | line source |
---|---|
366
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
1 Molko's Engine |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
2 ============== |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
3 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
4 The Molko's Engine is a C and Javascript framework to write 2D RPG games in a |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
5 portable manner. It is designed in mind to be flexible, simple and convenient to |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
6 use. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
7 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
8 It has the following features: |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
9 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
10 - Written in C99, |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
11 - Portable (Windows, macOS and UNIX likes systems), |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
12 - Simple, flexible, |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
13 - Well documented, |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
14 - Virtual file system support. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
15 - Usable in both C or Javascript. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
16 - Can embed resources using `mlk-bcc`. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
17 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
18 Javascript quick startup |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
19 ------------------------ |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
20 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
21 The `mlk-run` executable exposes the Javascript API and start a game from a |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
22 directory or a .mlk file (which is a .zip file with a .mlk extension). |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
23 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
24 Hello world in Javascript: |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
25 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
26 mkdir superluigi |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
27 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
28 Add the following content in superluigi/main.js: |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
29 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
30 ```js |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
31 var w = new Window("Super Luigi, number one", 640, 480); |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
32 var run = true; |
13
c188e9603faf
misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 |
366
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
34 while (run) { |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
35 var ev; |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
36 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
37 while ((ev = Event.poll())) { |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
38 switch (ev.type) { |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
39 case Event.Type.QUIT: |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
40 run = false; |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
41 break; |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
42 default: |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
43 break; |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
44 } |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
45 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
46 Painter.color = 0xFFFFFFFF; |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
47 Painter.clear(); |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
48 Painter.present(); |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
49 } |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
50 } |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
51 ``` |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
52 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
53 Finally run the game using `mlk-run superluigi`. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
54 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
55 You can also create a .zip file with a .mlk extension and `mlk-run` will be able |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
56 to use content from it. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
57 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
58 cd superluigi |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
59 zip -r ../superluigi.mlk . |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
60 cd .. |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
61 mlk-run superluigi.mlk |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
62 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
63 Documentation |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
64 ------------- |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
65 |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
66 Use `mkdocs serve` inside the **doc** directory to see the user and developer |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
67 documentation. |
13
c188e9603faf
misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 |
c188e9603faf
misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 Author |
c188e9603faf
misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 ------ |
c188e9603faf
misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
366
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
326
diff
changeset
|
72 Molko's Engine was written by David Demelier <markand@malikania.fr>. |