文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>事件

事件

时间:2006-05-26  来源:whtonline

  • 等待事件

调用SDL_WaitEvent()等待事件。

提示:
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); } } 
  • 事件轮询

事件轮询调用SDL_PollEvent()函数。

提示:
如果只要查看(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_EventState() 忽略所有的事件,并且定期的调用SDL_PumpEvents()更新程序的事件状态。

提示:
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"); } } 
相关阅读 更多 +
排行榜 更多 +
顶尖猎人罗迪和凯茜

顶尖猎人罗迪和凯茜

冒险解谜 下载
火柴人飞爪忍者

火柴人飞爪忍者

冒险解谜 下载
派对野兽

派对野兽

冒险解谜 下载