下面是一些代码,展示了如何使用 SDL 捕获键盘输入。
首先,您需要通过调用 EventPoll 从 SDL 查询键输入。您可以在准备好处理输入时执行此操作,或者以固定间隔定期执行此操作,并将键和键盘状态存储在内部表中。
void EventPoll (ulong mask)
{
SDL_Event event;
while (SDL_PollEvent (&event)) {
switch(event.type) {
case SDL_KEYDOWN:
KeyHandler (reinterpret_cast<SDL_KeyboardEvent*> (&event));
break;
case SDL_KEYUP:
KeyHandler (reinterpret_cast<SDL_KeyboardEvent*> (&event));
break;
// handle other events
}
}
}
void KeyHandler (SDL_KeyboardEvent *event)
{
SDLKey keySym = event->keysym.sym;
wchar_t unicode = event->keysym.unicode;
int keyState = (event->state == SDL_PRESSED);
// process key info, e.g. put key into a buffer and
// store keyboard state
}
以下是描述使用 OpenGL 呈现文本的方法的文档的链接:http ://www.opengl.org/resources/features/fontsurvey/
您可能想要做的是捕获键盘输入并使用您预加载的正确字体即时渲染它。