我使用 SDL 制作了一个程序,它有很多键盘和鼠标输入。目前,主要的 SDL 循环几乎有 400 行长,这完全是因为 switch 函数中有大量单独的案例。
整个程序大约有 1000 行,我希望将其拆分为单独的文件/模块。我想有一个单独的文件用于键盘输入和另一个用于鼠标输入,每个文件都包含一个将在主 SDL 循环中调用的函数。我确定我不久前看到了一个这样做的例子,但我找不到它。
目前我的代码看起来像这样
while( !quit && ( SDL_WaitEvent(&event) ) )
{
switch (event.type)
{
case SDL_MOUSEBUTTONDOWN:
{
switch(event.button.button)
{
case SDL_BUTTON_LEFT:
case SDL_BUTTON_MIDDLE:
case SDL_BUTTON_RIGHT:
}
}
case SDL_KEYDOWN:
switch (event.key.keysym.sym)
{
case SDLK_r:
case SDLK_i:
case SDLK_f:
case SDLK_g:
case SDLK_l:
我希望它是这样的......
while( !quit && ( SDL_WaitEvent(&event) ) )
{
switch (event.type)
{
HandleMouseInput();
HandleKeyboardInput();
我希望这是有道理的,并且不是一个太愚蠢的问题,但是经过大量的谷歌搜索和思考后,我似乎无法开始这样做。我以前从来没有真正写过这么大的程序,而且我不习惯多个源文件。