分类: LINUX
2006-05-26 10:20:21
|
提示: SDL支持国际键盘,解释键盘事件,并支持UNICODE(置于event.key.keysym.unicode)。由于Unicode支持需要额外的处理,当需要Unicode时必须先调用 SDL_EnableUNICODE()。 |
例程:{ SDL_Event event; SDL_WaitEvent(&event); switch (event.type) { case SDL_KEYDOWN: printf("键 %s 按下了!\n", SDL_GetKeyName(event.key.keysym.sym)); break; case SDL_QUIT: exit(0); } } |
|
提示: 如果只要查看(peek)事件,而不需要从事件队列中移走,你可以用SDL_PEEKEVENT作为参数调用SDL_PeepEvents()。 |
例程:{ SDL_Event event; while ( SDL_PollEvent(&event) ) { switch (event.type) { case SDL_MOUSEMOTION: printf("鼠标移动了%d,%d 到 (%d,%d)\n", event.motion.xrel, event.motion.yrel, event.motion.x, event.motion.y); break; case SDL_MOUSEBUTTONDOWN: printf("鼠标 %d 点击在 (%d,%d)\n", event.button.button, event.button.x, event.button.y); break; case SDL_QUIT: exit(0); } } } |
|
提示: SDL_ShowCursor()可以显示或者隐藏光标/鼠标。 |
例程:{ SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); } void CheckMouseHover(void) { int mouse_x, mouse_y; SDL_PumpEvents(); SDL_GetMouseState(&mouse_x, &mouse_y); if ( (mouse_x < 32) && (mouse_y < 32) ) { printf("鼠标在左上角!\n"); } } |