Pygame
在做这个游戏教程之前,我想了许久,觉得到底应该怎么做这个教程,是把每一个代码给大家讲清楚,还是直接讲如何去使用,后来我想了想,我自己也学习过许多的教程,给我最大的感受就是前期讲得太多,我完全记不住,过程太过无趣,所以我才想以项目入手,让大家感受pygame的乐趣,如果想要了解更多的内容,可以自己先去pygame的使用手册去查询,后续我也会通过项目去让大家学习更多
更要说的是,每个人的编程思维都不一样,有后有坏,如果你有更好的想法可以提出来,我们一起学习
简介
Pygame 简单理解,就是可以用他来做游戏,他相当于Python的一个库,Python有许多许多的库,每个库都有自己的功能,而它的功能就是做游戏
当然pygame需要安装,最简单的方法就是利用pip安装,这个太简单,或者是利用pycharm进行安装
Pygame的实际教程:
游戏是怎么形成的,他是根据图层的切换让你有种快速刷新的感觉,认为人物在进行移动,就像我们小时候的图层书,只要你翻的够快,就能让图像真正的动起来
详情请看飞机大战的演示
-
- 会移动超级玛丽
真正在做一个游戏之前,我们需要做一个环节示例
在网上选择一张你喜欢的背景图片和一个角色图,我们开始做
窗口
例如,我的就是这样,我的代码就在py里面写,
# 1,第一步,要用这个库肯定是先导库 import pygame # 2,初始化方法,简单理解要用他得先初始化 pygame.init() # 3,做游戏最重要的是什么,肯定是窗口,你连窗口都没有怎么玩 # 后面填的是列表,就是你要的分辨率 pygame.display.set_mode((400 ,400)) # 然后我们还得刷新,才能出来页面 # 以下两个都是刷新,不过filp只是会第一次刷新,而update则会一直刷新 # 二者选一即可 |
如果你在安装了Python并配了环境变量的情况下,你可以用黑窗口运行了
注意到你的文件目录下
你会看见一个黑窗口一闪而过,那是因为Python从上到下执行完了所有程序,自然会关闭
那我们就要让代码永远不会停掉,直到我们强制性停止程序
加上while true,他就进入了死循环
这时再运行,你会发现你无法点击上面的x结束页面
而是要点击黑窗口的x才能结束
结束游戏
对于pygame来说,每一个点击都是一种事件,包括键盘,包括鼠标
而我们的鼠标点击刚好就是一个事件
此时你在点击窗口,就可以关闭了
添加一个角色
|
结果:
移动角色
此时你执行完下面的代码后,你会发现他会往下跑,并且留下残影
我们的窗口是由x,与y组成的,左边和上面都是0,右边和下面是你设置的窗口最大值,也就是,最下面最右面就是400.400
screen = pygame.display.set_mode((400 ,400)) |
此时先说明残影的问题,那是因为他每隔1就会画一个角色,之前的角色我们并没有清除,这个时候就留下残影了
要解决的话也很简单。我们可以设置一个填充画面,每次画完一个新的主角后,我们就填充一个,通过快速的循环,是可以做出这样的效果的
填充背景
每次填充后,就会绘制一个主角,然后再填充覆盖掉以前的角色,这样我们就将完成了这个要求
If控制角色
角色的控制,要求他到达最下面的时候,又往上跑,到达最下面的时候又往下跑,这个我们要通过if来实现
这段代码还是很好理解的,当他到达最下面的时候speed= -1,这样就是每次-1了,就会往上走了
此时会有一个小问题,就是这个角色会到屏幕外面去
解决方法就是我们要用这个背景的长度,减掉角色的长度
可以看出角色的长度是246.
这样就完美解决了这个问题
此时我们发现主角太大了,pygame提供了缩放图片的方法
缩放图片
新问题来了,小是小了,但是他不会到最下面去了,因为我们的是if y > 400 - 246:
现在他的长已经不是246了,我们缩放是按照小数缩放的,我现在也不知道他是多大了,还好Python提供了获取大小的方法
获取大小
他返回的是两个参数,第一个是x,第二个你猜是什么
此篇教程就结束了,你可以删掉代码,自己重做一遍加上自己的想法,留个小问题,我们如何让他上下的更慢,评论区见