【Python黑科技】十行代码编写一个Python小游戏(pgzero库和pgzrun库)(保姆级图文+实现代码)
2022/2/5 11:12:37
本文主要是介绍【Python黑科技】十行代码编写一个Python小游戏(pgzero库和pgzrun库)(保姆级图文+实现代码),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 实现效果
- 准备图片素材
- 遇到的坑
- 实现思路
- 导入库
- 设置画布的大小和颜色
- 设置要运动的三角形和运动的规则
- 运行小游戏
- 实现代码
- 思路拓展的代码
- 总结
欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中
实现效果
毕竟只有10行代码,就只是简单的从一个三角形的循环运动开始。
是pgzero库和pgzrun库的一个简单入门
随后更为复杂的屏幕气泡运动
准备图片素材
需要在py文件的文件夹下新建一个images文件夹,并在其中放入图片素材triangle.png
图片格式没关系,后面我们引用图片时不需要加后缀的。
我的图片素材
遇到的坑
网上其他地方的类似代码拿过来报错不能用,有点奇怪pgzero库和pgzrun库的关系,我使用单个就是不行,一开始还遇到了Unresolved reference 'screen'
和Unresolved reference 'Actor'
的问题,后来解决了Actor
的报错(在前面加上前缀变为pgzero.builtins.Actor
),但是我后来又发现没有区别,报错了还是能照常运行,大家可以在评论区一起分享一下你的解决方法····
- 这个报错没有解决,但是能正常运行,应该是这个库就没有写好
- 修改后不再报错
实现思路
- 设置画布的大小和颜色
- 设置要运动的三角形和运动的规则
- 运行小游戏
导入库
import pgzrun import pgzero
设置画布的大小和颜色
WIDTH = 800 # 画布宽度 HEIGHT = 600 # 画布高度 # HEIGHT = triangle.height + 20 # 先定义了triangle的位置,再定义高度,避免角色因为大小问题导致的展示不全
如果不设置,默认是黑色!
screen.clear()#清除原来屏幕的内容
screen.fill((255, 255, 255)) # rgb颜色 255 255 255表示白色
#设置画布颜色 def draw(): screen.clear()#清除原来屏幕的内容 # rgb颜色 255 255 255表示白色 screen.fill((255, 255, 255)) triangle.draw()
设置要运动的三角形和运动的规则
- 介绍一下运动的规则
while game_run(): #默认一直进行如下循环,我们不用这么写,pgzero库默认是这个思路!我们需要重写update()和draw()写入我们需要的操作 process_input() update() draw()
- 设置运动的速度
设置水平运动速度dx,竖直运动速度dy
triangle.dx = 5 triangle.dy = 5
- 设置三角形初始位置和角色的图片内容
# triangle = Actor('triangle') #创建一个角色对象,使用图片名为triangle的图片 # triangle.pos = 0, 300 #指定角色在screen中出现在左对齐的居中位置 triangle = pgzero.builtins.Actor("triangle", (0, 300))#上面两行的简写形式
Pgzerod的actor对象有4个属性left、right、top、bottom,分别表示的左、右、上、下各个边界的位置,我们依靠这个进行碰撞检测。
triangle.left
triangle.right
triangle.top
triangle.bottom
#本函数用于时刻更新三角形位置,如果三角形的位置大于画布的大小,那么就把三角形的位置归零重置 #如果三角形还在画布之内,那么就把位置+1,实现三角形向右移动 def update(): # 如果三角形还在画布之内,那么就把位置+1,实现三角形向右移动 triangle.x += 1 if triangle.right > WIDTH: # 时刻更新三角形位置,如果三角形的位置大于画布的大小,那么就把三角形的位置归零重置 triangle.x = 0
运行小游戏
pgzrun.go()#运行游戏
实现代码
# @Time : 2022/2/3 17:54 # @Author : 南黎 # @FileName: 十行代码编写一个Python小游戏.py import pgzrun import pgzero #设置角色初始位置 # triangle = Actor('triangle') #创建一个角色对象,使用图片名为triangle的图片 # triangle.pos = 0, 300 #指定角色在screen中出现在左对齐的居中位置 triangle = pgzero.builtins.Actor("triangle", (0, 300))#上面两行的简写形式 WIDTH = 800 # 画布宽度 HEIGHT = 600 # 画布高度 # HEIGHT = triangle.height + 20 # 先定义了triangle的位置,再定义高度,避免角色因为大小问题导致的展示不全 #设置画布颜色 def draw(): screen.clear()#清除原来屏幕的内容 # rgb颜色 255 255 255表示白色 screen.fill((255, 255, 255)) triangle.draw() #本函数用于时刻更新三角形位置,如果三角形的位置大于画布的大小,那么就把三角形的位置归零重置 #如果三角形还在画布之内,那么就把位置+1,实现三角形向右移动 def update(): # 如果三角形还在画布之内,那么就把位置+1,实现三角形向右移动 triangle.x += 1 if triangle.right > WIDTH: # 时刻更新三角形位置,如果三角形的位置大于画布的大小,那么就把三角形的位置归零重置 triangle.x = 0 pgzrun.go()#运行游戏
思路拓展的代码
我们可以让物体的运动方向变得随机。
每次触碰到边界再进行重置,实现屏幕保护的气泡运动效果。
# @Time : 2022/2/3 19:39 # @Author : 南黎 # @FileName: 随机运动多方向碰撞检测Python小游戏.py import pgzrun WIDTH = 1024 HEIGHT = 720 triangle_number = 4#生成几个triangle对象 triangles = [] for i in range(triangle_number): triangle = Actor("triangle") triangle.x = 50 * i + 100 triangle.y = 100 triangle.dx = 5 + i triangle.dy = 5 + i triangles.append(triangle) def draw(): screen.fill((255, 255, 255)) for triangle in triangles: triangle.draw() #每次触碰到边界再进行重置,实现屏幕保护的气泡运动效果 #进行随机的运动 def update(): for triangle in triangles: triangle.x += triangle.dx triangle.y += triangle.dy if triangle.right > WIDTH or triangle.left < 0: triangle.dx = - triangle.dx if triangle.bottom > HEIGHT or triangle.top < 0: triangle.dy = -triangle.dy pgzrun.go()
总结
大家喜欢的话,给个
这篇关于【Python黑科技】十行代码编写一个Python小游戏(pgzero库和pgzrun库)(保姆级图文+实现代码)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python