《Python游戏编程入门》注-第二章5

2 监听键盘按键

Pie游戏运行后,当玩家按下"1-4"这四个数字按键,会在相应位置绘制"饼"。因此,游戏需要对键盘按键进行监听,代码如图7所示。

图7 监听键盘按键

其中,第22行的for循环用于获取事件信息,第23-25行代码表示当用户点击了游戏窗口右上角的"关闭"按钮时,游戏退出;第26行代码表示当玩家按下了键盘按键,KEYUP表示按键弹起(按键按下后就会弹起);第27-37行对玩家按下的按键进行判断,pygame.K_ESCAPE表示键盘中的"Esc"按键,K_1、K_2、K_3和K_4分别表示键盘上"1-4"数字键;piece1、piece2、piece3和piece4表示"1-4"数字键被按下的标志,True表示按下,False表示没有按下,这四个变量在while True之前定义,代码如图8所示。

图8 按键标志的定义

3 响应键盘按键

当玩家按下不同按键时,游戏应该进行不同的响应,即对应"1-4"四个数字键,绘制不同的"饼",绘制"饼"就相当于绘制一个90度的"弧形"以及"弧形"的两条边(绘制"线条")。该代码如图9所示。

图9 响应键盘按键的代码

其中,四个if语句分别判断"1-4"四个数字键是否被按下;第54-59代码对应数字"1"被按下后的响应;第55-56行定义了绘制"弧形"的起始弧度和结束弧度,第57-59行代码分别用来绘制"弧形"和其两个边,"弧形"和"线条"所需的坐标如图10所示。

图10 "弧形"和"线条"坐标

图10所示的代码中表示位置、宽度和颜色的变量定义代码如图11所示。

图11 变量定义

相关链接2 绘制"弧形"和绘制"线条"的方法请参考《Python游戏编程入门注-第2章2》《Python游戏编程入门注-第2章3》

注意4 图9所示的代码位置在while True中。

注意5 图11所示的代码位置在while True之前。

4 改变"饼"的颜色

当4个"饼"都画完后,改变"饼"的颜色,代码如图12所示。

图12 改变"饼"颜色的代码

其中,piece1、piece2、piece3和piece4表示"1-4"数字键被按下的标志,数字键按下,则说明对应的"饼"已经画完。当这四个变量均为True时,表示当4个"饼"都画完,此时将表示"饼"颜色的变量color进行修改。

注意6 图12 所示的代码位置在while True中。

注意7 完整代码请在《Python游戏编程入门注-第2章1》中提到的地址中下载。

相关推荐
1***815322 分钟前
C在游戏中的场景管理
java·jvm·游戏
忘却的旋律dw30 分钟前
使用LLM模型的tokenizer报错AttributeError: ‘dict‘ object has no attribute ‘model_type‘
人工智能·pytorch·python
20岁30年经验的码农39 分钟前
Java RabbitMQ 实战指南
java·开发语言·python
studytosky2 小时前
深度学习理论与实战:MNIST 手写数字分类实战
人工智能·pytorch·python·深度学习·机器学习·分类·matplotlib
上不如老下不如小3 小时前
2025年第七届全国高校计算机能力挑战赛初赛 Python组 编程题汇总
开发语言·python·算法
Q_Q5110082853 小时前
python+django/flask的结合人脸识别和实名认证的校园论坛系统
spring boot·python·django·flask·node.js·php
Q_Q5110082853 小时前
python+django/flask的选课系统与课程评价整合系统
spring boot·python·django·flask·node.js·php
charlie1145141913 小时前
勇闯前后端Week2:后端基础——Flask API速览
笔记·后端·python·学习·flask·教程
豐儀麟阁贵3 小时前
8.2异常的抛出与捕捉
java·开发语言·python
interception3 小时前
爬虫js逆向,jsdom补环境,抖音,a_bogus
javascript·爬虫·python