知行编程网知行编程网  2022-03-25 00:37 知行编程网 隐藏边栏 |   抢沙发  54 
文章评分 0 次,平均分 0.0

元宵节已过,是时候开工练手啦!利用Python做一个小游戏,既锻炼自己的能力,而且还可以玩游戏。利用Python做游戏,可以利用的框架很多,包括pygame,turtle,还有freegames等,这些框架各有特点,我决定充分的利用这三个库,将他们整合到一个游戏当中,采用面向对象的编程方式,编写一个基于类的贪吃蛇游戏。


使用的库:

  • pygame

  • turtle

  • freegames

先看视频一睹为快

01

定义贪吃蛇对象


话不多说,开始动手,首先是如何定义一个贪吃蛇对象,玩过贪吃蛇游戏的都知道,贪吃蛇需要有蛇、有吃的食物,还要有前进的步长,其实就是往哪个方向,移动距离是多少。

菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做


这些都需要在类的初始化中进行定义,其中蛇是一个数组,食物和前进的步长等是一个freegames下的vector元素。


有了蛇这个形象之后,我们要定义他的动作,在玩贪吃蛇游戏的过程中,蛇需要进行方向的转动,来进行转向。所以我们只需要改动初始化中的前进步长即可。代码如下图所示:


菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做


02

如何移动


下面我们需要定义贪吃蛇最为关键的部分,便是蛇的移动,有了蛇的移动,画面才能动起来,我们才能体验到游戏的乐趣。


但是这里蛇的移动,是利用了人们的视觉误差,其实贪吃蛇就是不断的添加新的位置信息,同时将位于列表最前部的位置剔除,如果蛇吃掉了食物,那么就不剔除列表最前面的元素。


完成这系列操作后,将屏幕进行清空,重新画出蛇、食物的位置信息,然后更新屏幕,我们看到的就是蛇在不断的进行移动了。


除了蛇的移动,我们还要定义蛇的“死亡”。这里我们定义当蛇触碰到边界,或者头部碰到蛇的身体时,蛇便“死亡”。代码如下所示:


菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做

上面的代码有两个关键的地方:

  • 头部位置判断,通过self.inside(head) or head in self.snake来判断当蛇的头部碰到边界或者是蛇的头部碰到自己的身体时,蛇应当“死亡”。


  • 判断是否吃到食物 head == self.prey,当蛇吃到食物的时候,食物的位置应该重新定义,如果蛇没有吃到食物,那么蛇就应当减少一个vector(self.snake.pop(0)),否则蛇的身体会不断的增长。

03

界面等级设计


最后是程序的启动过程,程序的启动是在蛇类中定义了一个start的方法,首先是进行难度的选择,有三种模式,分别对应的是初级玩家、中级玩家和高级玩家。

菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做

根据不同的玩家模式会对应着不同的难度。这一部分是采用pygame行编写,程序如下图所示:


菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做

  • button函数,分别定义了它的大小,位置,和文本信息。

  • 在init_surface函数当中,分别定义了三个button,对应着初级、中级和高级玩家

  • 利用pygame中的键盘监控,当不同的按钮捕获到了鼠标在自己的范围内被按下时,便返回对应的数字,通过返回对应的数字,便可以知道玩家进入的是哪个玩家模式。

04

背景设置


选择完模式后,便利用turtle库,进行游戏界面背景的设置,并进行键盘按钮的监控,来控制蛇的转向等操作,代码如下图所示:

菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做


看了半天,是不是想赶紧启动程序玩游戏啦,当然你还可以加入一些元素比如音乐,比如增加随机的食物可以加速!话不多说,有兴趣的小伙伴可以敲一下!或扫码下面的二维码获取源码:


扫码下面的二维码

输入:【贪吃蛇】

获得源码

菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做

菜鸟也能用Python做一个贪吃蛇,手把手教你怎么做
好看你就点点

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享