大家好,小编为大家解答笨办法学Python 3 进阶篇 百度网盘的问题。很多人还不知道笨办法学python 3电子书下载,现在让我们一起来看看吧!
本篇文章给大家谈谈python赛车游戏开发,以及python赛车游戏代码,希望对各位有所帮助,不要忘了收藏本站喔。
作者自我介绍:大爽歌, b站小UP主 ,直播编程+红警三 ,python1对1辅导老师 。
本教程步骤明确,过程清晰简明,最终代码量250行上下,适合学习pygame的新手AI同义句转换好用的句子同义替换软件。 项目代码已上传到我的github: GitHub - BigShuang/simple-brick-games-by-pygame 本文分7部分,每一部分最终代码均存到项目仓库下的1 car racing 游戏已录制成视频,投稿至本人b站:点击前往b站观看游戏视频
游戏运行效果,截图如下
〇 - 初始准备工作
本项目使用的python3版本*(如果你用python2,我不知会怎么样)* Ide推荐大家选择pycharm*(不同ide应该没影响)* 需要安装第三方库pygame,安装方法(windows电脑,mac系统本人实测与pygame不兼容,强行运行本项目卡成ppt)
电脑打开cmd命令窗口,输入pip install pygame
如果电脑上安的是pip3则是pip3 install pygame
补充说明:由于众所周知的原因,安装过程中下载可能十分缓慢,甚至由此导致安装失败 此时建议大家尝试使用镜像下载
—国内源— 清华: 阿里云: 中国科技大学: 华中理工大学: 山东理工大学: 豆瓣:
使用办法 pip install xxxx -i jinxiangurl
具体到pygame,则是:
pip install pygame -i
一、实现基础窗口
0 - 新建文件,内容如下
import pygame
WIN_WIDTH = 600 # 窗口宽度
WIN_HEIGHT = 900 # 窗口高度
() # pygame初始化,必须有,且必须在开头
# 创建主窗体
win=pygame.display.set_mode((WIN_WIDTH,WIN_HEIGHT))
此时运行,会发现一个一闪而逝的窗口,
1 - 进一步,我们自然而然的就要思考这些问题
游戏窗口大小设置为多少合适?由于是方块游戏,所以可以根据方格尺寸、行格字数、列格子数去计算出窗口的宽高 怎么维持住这个窗口?通过while循环去实现 但是简单的循环只是单纯的将界面卡住,怎么实现刷新?在循环体内使用pygame.display.update()
语句进行界面的更新 循环的刷新频率不做节制的话,界面会飞速刷新导致卡死,怎么办?pygame有专门的对象.Clock
用于去控制循环刷新的频率,创建.Clock
对象后,调用该对象的tick()
方法,函数参数为每秒刷新次数,就可以设置循环每秒刷新频率,术语叫做帧率
可前往官方文档观看.Clock的更多细节,.Clock
根据上面的思路,修改后如下
import pygame
C, R = 11, 20 # 11列, 20行
CELL_SIZE = 40 # 格子尺寸
FPS=60 # 游戏帧率
WIN_WIDTH = CELL_SIZE * C # 窗口宽度
WIN_HEIGHT = CELL_SIZE * R # 窗口高度
() # pygame初始化,必须有,且必须在开头
# 创建主窗体
clock = .Clock() # 用于控制循环刷新频率的对象
win = pygame.display.set_mode((WIN_WIDTH,WIN_HEIGHT))
while True:
(FPS) # 控制循环刷新频率,每秒刷新FPS对应的值的次数
pygame.display.update()
此时运行, 就可以得到一个最最最基础的窗口了,
2 - 但是,这个窗口有个大问题, 此时窗口的关闭按钮很容易出bug(卡死)
所以需要自己去重新实现这个窗口关闭功能,需要在循环体内添加如下代码
# 获取所有事件
for event in ():
if == :
# 判断当前事件是否为点击右上角退出键
()
() # 需要提前 import sys
同时我们一般会希望能够设置下背景的颜色 比如,这个游戏的背景色是轻灰色(200, 200, 200) 那么设置背景的代码为
bg_color = (200, 200, 200)
(bg_color)
不过需要注意的是,这段代码放在不同的位置会产生不同的效果。 放在while循环之前,代表只绘制一次背景,会被后面绘制的东西遮住。 放在while循环中,则是每一帧都会绘制一次背景,一般用于去覆盖掉那些希