⽤pygame制作贪吃蛇游戏(详细)
案例导⼊
相信我们绝⼤多数的⼈都玩过贪吃蛇这款游戏
延安 旅游今天我们就⽤python制作这款游戏
工商银行转账限额但是⾸先我们想做它就得弄明⽩他的实现原理是什么
基本原理
⾸先我们要做的这款游戏界⾯是很low的,因为我们做的这款游戏算是最简单最⼊门的⼀款游戏男士化妆品品牌
玩过这个游戏的⼈都很清楚,这个蛇在⾏⾛时的每⼀个格⼦都会移动到他前⼀个格⼦的位置,类似于这样⼀个⼀个跟随着往前⾛,最前⾯的那个格⼦是跟随着脑袋也就是蛇头往前⾛,头跟着你的控制器的⽅向⾛,这就实现了⼀个移动跟随
因为是贪吃蛇所以他要吃东西,当它的头部碰到了⾷物之后也就是头和⾷物重合了,他的尾部就会增加⼀格,这就是⼀个进⾷的过程 本⼈灵魂画师请不要介意
其实这就是这个游戏的核⼼思想,就⼲了这么两件事
所需⼯具
pygame
实际操作
废话不多说,直接动⼿
第⼀步 导⼊模块
第⼆步 初始化框架
因为宽和⾼要经常⽤到,所以把它存在⼀个变量⾥⾯
选床垫在我们set_mode的同时会给我们创建⼀个window对象,我们就可以拿着window对象去显⽰了过年的传说
set_caption设置标题
现在运⾏就会有个⼀闪⽽过的窗⼝
下⾯的们的代码会解决这个问题
我们代码最重要的部分 游戏循环
这个循环要⼀直循环下去,但是不能让他变成死循环
怎么解决这个问题呢,⾸先,这个游戏是可以结束的,结束的条件就是当⽤户点击退出或者是操作的蛇撞死的时候,这个循环就可以停了
所以我们可以设置⼀个变量quit=False,让他⼀直是false,循环应该结束的时候变成True
其次我们不能让这个循环⼀直不停的跑,我们要留出时间来去做⼀些游戏的渲染或者其他的⼀些⼯作,这些⼯作都是交给系统的,这⾥我们会⽤到pygame⾥⾯的time.Clock() 这个就是游戏的时间控制,⽐如把这个游戏调成多少帧
现在已经可以出现⼀个这样的窗⼝了
接下来我们还要处理游戏的⼀些事件和渲染
我们第⼀个要处理的事件就是游戏的退出
()是获取到当前事件的队列
因为我们要处理这个队列的所有事件,
⼀般我们都会设置⼀个循环,就可以去处理内部⼀个⼀个的event
下⾯要做的就是渲染了,任何⼀个游戏都要有渲染的过程
(window,)绘制⼯具,参数1要说明你要往哪画,参数2要说明你要画什么颜⾊的东西,参数三要说明你要画的范围,从哪开始到哪⾥结束
pygame.display.flip() #暂时把控制权交还给系统,让系统去做⼀些渲染操作
显⽰结果如下:(不要在意它的颜⾊)
现在已经完成了框架初始化的操作
第三步 绘制场景
可以把上⾯的场景看成⼀个相对较⼤的⼆维数组(学过numpy的同学应该很好理解)
类似于这样:0 0 0 0 0
0 2 1 1 0
0 0 0 1 1
1代表蛇 2代表⾷物 每个元素都有⼀个数据
现在我们需要把这个给体现出来:
先设置这个格⼦的⾏和列 ⾏决定了它的纵向 列决定了它的左右位置 现在我们就得到了每个格⼦有多⼤ ⽐如: 宽度=总宽度(width)/列(ROW)后⾯会有⽤
中国护肤品排行这⾥我弄⼀个Point对象,让每⼀个点是让⾏和列组成的
把点的⾏和列都保存起来 ⼤致是这样⼀个功能
下⾯开始定义坐标:
先从蛇的头开始,蛇头其实就是⼀个point对象 我们让它的初始位置在正中间
然后再定义蛇的⾷物,因为蛇的⾷物是随机出现的,所以这⾥我们⽤到random模块
这⾥有个⼩细节,我们要⽣成⾷物并且不让⾷物⽣成在蛇的⾝体⾥⾯,我们可以定义⼀个函数去解决
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论