目录
作为一款游戏,一方面是游戏的内容是否吸引人,另一方面就是作为游戏者参与其中,因此如何与用户互动是需要着重解决的问题,因此第二部分是事件处理机制,也就是上篇中提到的event.type的处理。一般为键盘和鼠标输入,开发高级一点游戏还需要游戏杆,这里主要说一下键盘和鼠标操作的处理。
首先解释几个问题:
1、事件处理需求主要有以下几个方面:
• 响应用户键盘、鼠标等外设操作
• 响应屏幕尺寸和模式变化
• 响应游戏情节的特定触发条件
• 产生一些触发条件
• ……
2、Pygame事件队列
建立的一个队列,用于缓存并派发所有事件
原则上先到先处理
3、Pygame事件
pygame.event.EventType
• 事件本质上是一种封装后的数据类型(对象)
• EventType是Pygame的一个类,表示事件类型
• 事件类型只有属性,没有方法
• 用户可自定义新的事件类型
4、事件类型及属性

5、事件处理的重要函数

6、键盘事件

针对事件类型,例如键盘中按下,然后针对不同的键值和修饰符组合,可以实现多种对游戏的操作反馈,从而实现人对游戏的全面操控,但是基于游戏的可玩性,尽量的减少按键的数量,对于游戏是有益的!
7、鼠标事件

(1)pygame.event.MOUSEMOTION鼠标移动事件
• event.pos 鼠标当前坐标值(x,y),相对于窗口左上角
• event.rel 鼠标相对运动距离(X,Y),相对于上次事件
• event.buttons 鼠标按钮状态(a,b,c),对应于鼠标的三个键
(2)pygam

本文深入探讨了Pygame的事件处理机制,包括事件队列、事件类型及其属性、键盘和鼠标事件的处理,以及如何响应用户操作和窗口变化。通过代码示例展示了如何使用pygame.event.get()、pygame.event.poll()和pygame.event.clear()等函数来管理和处理事件,同时讲解了如何自定义和生成事件,以实现更丰富的游戏交互体验。
最低0.47元/天 解锁文章

2712

被折叠的 条评论
为什么被折叠?



