Jeremy Penner
1e2de1dd99
Implement new input event model.
...
Input events are now represented as maps containing the complete current state of the user's input devices.
The update method is called with a timeline of all input events since the last call to update.
This neatly solves the "stuck key" problem by making state transitions implicit.
It also solves the problem of different game states (ie. in-game and paused with menu) dealing with input differently.
If part of a game cares about keeping track of all of its input history, and part doesn't, they don't have to fight or know about each other.
2013-03-18 22:15:25 -04:00
Jeremy Penner
eaedaee31a
Some more timeline helpers
2013-03-18 22:06:37 -04:00
Jeremy Penner
7ca348442d
Add update-gs, which always returns the modified gs and is almost always what you want.
2013-03-18 22:02:16 -04:00
Jeremy Penner
dcc5d430e3
Create and provide a timeline of user input events (keyboard / mouse)
...
Make the container accessible from the game object after initialization (mostly for debugging)
Implement some test code (moving a sprite around)
2013-03-14 11:13:44 -05:00
Jeremy Penner
fcc86c782c
Implement timelines (sorted map of timestamps to values)
2013-03-14 11:04:49 -05:00
Jeremy Penner
29409585e9
Simple test "game" with data
2013-03-12 00:19:46 -05:00
Jeremy Penner
d7e0453578
Resource management / caching with optional automatic expiry on file modification
2013-03-12 00:18:01 -05:00
Jeremy Penner
e3d4129d64
refactor clear-and-get-evalqueue into the reusable reset-returning-old!
2013-03-12 00:17:10 -05:00
Jeremy Penner
f3f5d007f9
more id indices and a helper for building them
2013-03-11 15:34:36 -05:00
Jeremy Penner
48fbf954c9
don't bother printing illegible function pointer on eval failure
2013-03-11 15:34:09 -05:00
Jeremy Penner
87fb73f1a3
Fix binding bug in repl where the first value bound to a var when a repl command is evaled is saved in the session bindings forever
2013-03-11 14:45:41 -05:00
Jeremy Penner
339e6f5444
Implement nrepl support, catch exceptions. Hot code reload is now fully operational.
2013-03-10 03:54:09 -05:00
Jeremy Penner
246213c8a2
Initial integration with Slick2d, including hot code reloading
2013-03-09 09:27:42 -06:00
Jeremy Penner
492b5393a1
More idiomatic looping
2013-03-09 09:26:09 -06:00
Jeremy Penner
1118b012f1
Event queue functionality
2013-03-07 23:18:57 -05:00
Jeremy Penner
6b56991689
Add the ability to query arbitrary game states without using with-gs
2013-03-07 23:18:37 -05:00
Jeremy Penner
a32058babd
Initial commit with working gamestate + indexing.
2013-03-05 23:14:20 -05:00