42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
Markdown
|
# The How And Why
|
||
|
## Third Party Libraries
|
||
|
|
||
|
This engine uses a few third party libraries which solve a great deal of problems:
|
||
|
|
||
|
- [30log](https://github.com/Yonaba/30log) for class definition
|
||
|
- [STI](https://github.com/karai17/Simple-Tiled-Implementation) for the tiled maps
|
||
|
- [Hardon Collider](http://vrld.github.io/HardonCollider/) for the collision handling
|
||
|
- [anim8](https://github.com/kikito/anim8) for animations
|
||
|
|
||
|
Thanks to all the creators of these!
|
||
|
|
||
|
## Characters
|
||
|
|
||
|
Each object defined in the 'character' layer of the map must have a character definition in the 'characters' folder.
|
||
|
The file is named like the name of the object.
|
||
|
For example an object named matty has a file 'characters/matty.lua'.
|
||
|
|
||
|
In this file all the other properties are defined.
|
||
|
|
||
|
And to clarify: a player is just a character with relevant keys attached to it.
|
||
|
|
||
|
## Controllers
|
||
|
|
||
|
Defines the movement of a character. Each character has its own instance.
|
||
|
It must implement at least the following functions:
|
||
|
|
||
|
- sendKey(key)
|
||
|
- send a keypress to the controller which then decides if it takes action
|
||
|
- stopAnimation()
|
||
|
- stops a running character animation
|
||
|
|
||
|
and the following properties:
|
||
|
|
||
|
- charinfo
|
||
|
- an instance of a character file
|
||
|
- animation
|
||
|
- the active animation
|
||
|
|
||
|
Apart from those the controller works how it sees fit.
|
||
|
|