[SDL] Game event loop and input
david at olofson.net
Fri Jan 31 07:15:01 PST 2003
On Friday 31 January 2003 01.57, Stephen Anthony wrote:
> My solution was to use a handleGameEvents normally, but if in menu
> mode (indicated by some global variable), then to do a
> handleMenuEvents instead.
That's a basic state machine design. I think that's about the only way
to keep this clean if you have more than one or two menues. As soon
as you have intro mode, game mode, "get ready" mode and a few dialogs
such as "end current game?", "quit game?", options etc, anything else
will be a total mess. Sooner or later, you'll want to use some of the
dialogs from within more than one game state, which is where you
realize a state stack is rather handy...
> Something makes me think there should be a cleaner way though.
> What if I want to add a different menu? Create another function to
> handle *those* events??
Well, you can't really get around that... You *can* translate the
events into something that fits your design better, though, if that
In Kobo Deluxe, I have rudimentary internal "control events", that are
IIRC, function call delivered and based on generic control "buttons"
rather than actual keys, mouse buttons, joystick events etc. The idea
is that everything goes through the input mapper *first*, so you can
control the game, menues and all with whatever controller you decide
to use. (So you can reach the menues at all, even if you don't have a
keyboard in reach, or don't have one at all.)
> I guess what I'd like to know is how to simulate a multi-event
> paradigm in SDL, like one does in a GUI toolkit.
Same way, really - although dialogs in games are generally modal,
which is something that GUI toolkits handle for you in the
background. SDL doesn't even have the concept of "dialogs" and
"windows", nor the concept of different "objects" as event receivers,
so you have to this yourself.
//David Olofson - Programmer, Composer, Open Source Advocate
.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
--- http://olofson.net --- http://www.reologica.se ---
More information about the SDL