销售产品网站有哪些,新宫网站建设公司,如何推广自己的店铺?,建行app怎么注册登录《Python游戏编程入门》的第4章是“用户输入#xff1a;Bomb Cathcer游戏”#xff0c;通过轮询键盘和鼠标设备状态实现Bomb Cathcer游戏。
1 Bomb Cathcer游戏介绍
“4.1 认识Bomb Cathcer游戏”内容介绍了Bomb Cathcer游戏的玩法#xff0c;即通过鼠标来控制红色“挡板”…《Python游戏编程入门》的第4章是“用户输入Bomb Cathcer游戏”通过轮询键盘和鼠标设备状态实现Bomb Cathcer游戏。
1 Bomb Cathcer游戏介绍
“4.1 认识Bomb Cathcer游戏”内容介绍了Bomb Cathcer游戏的玩法即通过鼠标来控制红色“挡板”的移动让红色“挡板”能够接住从屏幕顶端落下的黄色“炸弹”。每接住一个“炸弹”游戏右上角的“SCORE”即“分数”增加10点如果没有接住“炸弹”则游戏左上角的“LIVES”即“命”会减1直到“LIVES”减少到0游戏结束如图1所示。 图1 Bomb Cathcer游戏
相关链接1 Bomb Cathcer游戏游戏的代码在《Python游戏编程入门》注-第2章1中介绍的下载地址中。路径是“python游戏编程入门-code-code-chap04-BombCatcher.py”。
2 Pygame事件
“4.2 Pygame事件”内容介绍了Pygame事件的相关知识。
在Pygame中将用户对游戏的操作叫做“事件”也叫“消息”。键盘按键是一种事件鼠标点击和游戏手柄的输入也是一种事件。在Pygame的子模块locals中对这些事件消息进行了定义。当用户通过键盘、鼠标或者游戏手柄对游戏进行操作后产生的这些事件消息都会被放在队列中。
3 判断键盘和鼠标是否被按下
“4.2.1 实时事件循环”内容介绍了使用while True循环来判断键盘或者鼠标是否被按下。因为我们不知道玩家何时按下键盘或鼠标因此要使用while True循环实时判断。在Pygame中键盘或者鼠标是否被按下的基本原理就是从队列中取出这些事件消息根据事件消息的类型进行判断如图2所示。 图2 事件消息、事件队列以及实时判断事件的关系
3.1 代码框架
使用如图3所示的代码作为判断键盘或者鼠标是否被按下的代码框架。 图3 判断键盘或者鼠标是否被按下的代码框架
图3所示代码创建了一个淡绿色背景的窗口。
相关链接2图3所示的代码的详细说明请参考《Python游戏编程入门》注-第2章1。
3.2 通过循环实时判断事件
在图3第8行代码所示的while True循环内部加入如图4所示的代码从事件队列中取出事件并对事件进行判断。 图4 从事件队列中取出事件并对事件进行判断的代码
其中第10代码中pygame.event.get()函数的作用是从队列中取出所有的事件并将其保存到变量event中第11行代码 通过if语句对事件类型event.type进行判断QUIT表示程序退出的事件第12行代码通过pygame.quit()退出pygame第13行代码通过os.sys.exit()退出游戏程序。当点击了游戏右上角的“×”按键时QUIT事件将会被放入到队列中游戏程序从事件队列中取出QUIT事件时首先退出pygame之后退出游戏程序。
注意1 使用图4所示代码需要导入os模块。
注意2 QUIT消息是在pygame.locals模块中定义的因此图3中第2行代码是必须的。