从本期开始,我们将利用几天的时间利用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库——pygame。可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样,但是我们可以通过以做游戏的方式来巩固我们学过的知识,何乐而不为呢?废话不多说,撸起袖子加油干!!!
pygame的安装
如果你之前在安装python的时候,如果把环境变量等等都配置好了,那么安装pygame是很容易的事,只要打开cmd输入pip install pygame即可
当看到Successfully installed xxx 的字样即说明已经成功安装。
另外说一句,如果想要查看自己安装的所有库,则使用pip list;如果想要卸载某库,则使用pip uninstall xxx;如果想要更新某库,则使用pip install --upgrade xxx。
进击的小球
我将和大家一起来制作一款小游戏,从而一步一步了解pygame的用法。这款游戏实现起来非常简单,没有''超级玛丽''那么复杂,因为所有的素材我们自己都可以做,我把这款游戏命名为''进击的小球'',效果如下:
玩法:通过键盘的↑键来控制小球往上走,当松开↑键时,小球以一定速度向下掉,小球每越过一根棒加1000分,越过一个飞镖加2000分,当小球碰到棒或者飞镖时,生命减一,同时还设置了暂停键,开始键,本局分数和历史最高分。
实现过程
黑色背景和游戏名
背景颜色为黑色,游戏名为''进击的小球''。
代码示例
运行以上程序,就可以看到名为''进击的小球''的黑色窗口。
主角登场
下面我们把主角,就是那个绿色的小球给请出来。
首先我们需要一张小球的图片,我把所有的图片都放在了images文件下,并且将小球命名为ball
导入图片
我们首先看看将它显示在(0,0),也就是左上角的位置的代码。
也就是说,以左上角为原点,越往右下,坐标就越大,注意这里的坐标对应的是图片的左上角。
但是我们不希望小球一开始出现在左上角,我们希望它出现在顶部的中间位置,小球不仅有位置,还有上升和下落的速度等等,考虑到这一点,我们要定义一个Ball类。
这里我简单说一下为什么要继承pygame.sprite.Sprite,因为这是一个可见游戏对象的基类,以后可能会用到的碰撞检测等等都需要用到这个类的一些方法,不仅仅是球类,以后的棒类等等也要继承它。
然后把小球渲染到屏幕上(注意一定要先填充屏幕,在显示小球,要不小球会被覆盖)
这样,我们就得到了一个位置在顶部中间的小球。
但是,小球总不能呆在顶部中间吧?要不然我们定义的上升速度和下降速度也就没有意义了,所以我们要给小球添加方法,分别是上升和下降。
实现的方法很简单,我们的游戏是小球在屏幕中间上下移动,也就是说小球左边的位置不变,顶部的位置发生变化即可,所以当小球上升时,顶部位置的坐标减小,下降时,顶部位置的坐标增大。所以上升和下降的方法可以写为:
方法已经写好,下面我们来写控制部分的代码,我们的思路是这样的,当按下↑键时,小球上升,当松开时,小球下降。因为这是一个不断刷新的过程,我们要写在while循环中。
来看一下效果
小球的速度稍微快了一点,看起来不太连贯,因为每秒的帧数太高,如果直接改小小球的速度,后面的棒和飞镖我又怕躲不过,经过多次尝试,我发现比较好的方法是调低每秒的帧数。
效果
最后附上本节完整代码
更多精彩内容关注python小白联盟哦
python小白联盟
网友评论