用 python 写一个小游戏

今天玩点别的吧都说 Python 除了生孩子什么都能干

咱们今天就用 Python 写个小游戏贪吃蛇

在这里插入图片描述

想必大家都玩过这玩意

有没有想过你自己来实现一个这样的游戏呢

那么接下来就是学习 python 的正确姿势

想要用 Python 写一个小游戏就不得不知道 pygame 这个库了

这个库是在 sdl 之上构建的

可以使用到很多 GUI、渲染画布等

废话不多说

我们开始

首先我们得有个窗口通过 pygame 的初始化就可以使用它提供给我们的工具了

在这里插入图片描述

既然有东西可用了来设置一下游戏名称吧

想了想就叫做《帅气的python》

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXlGo6B8-1684806192981)(data:image/svg+xml;utf8,)]

恩,很符合我的气质

通过 set_model 方法可以设置窗口的大小

比如:

在这里插入图片描述

那么这时候得到的窗口就是这样

把这张图点开,居然发现了一张帅脸

窗口有了

咱们把蛇搞上去

背景我们就默认黑色吧所以蛇的颜色应该是白色

这样才显得比较凸突出

通过 pygame 的 rect 方法

可以在画布上画矩形

那么一开始我们的蛇应该是处于中间的

蛇的长度就给 4 个格子吧

这里我们一个格子的宽高设置为 10

现在应该是这个样子

蛇有了

就差食物了

一样的道理

现在就成这样了

还整的有模有样的

在这里插入图片描述

不过这食物吧是随机的才对

而且我们刚写的代码有点糙捣腾捣腾

这里把食物的位置随机了一下这样每次一运行就会随机显示了

好了

现在蛇也有了食物也有了

接下来就让蛇的身体扭!起!来!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UE0tIGCK-1684806192986)(data:image/svg+xml;utf8,)]

需要监听一下

方向键的事件

通过 pygame 的这个方法

pygame.event.get()

可以监听事件

比如监听关闭

在这里插入图片描述

又比如这样来监听我们的方向键

运行起来

只要你按了方向键

就会被监听到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5D35Y1H-1684806192986)(data:image/svg+xml;utf8, )]在这里插入图片描述

接着定义一个蛇头的位置

在这里插入图片描述

蛇头居中指引方向

每次触发一个方向键就让蛇头的位置发生相应的变化然后更新蛇身的位置

所谓更新蛇身位置

主要将是将列表中的元素更新一下

添加蛇头的位置pop掉蛇尾的位置

每次更新

需要渲染一下画布

在这里插入图片描述

运行一下就是这样的

我把它扭起来了

哎我这该死的手速差点暴露了什么

在这里插入图片描述

刚刚的代码是不是很多重复抽成一个方法吧

在这里插入图片描述

蛇也有了也会扭了

食物也有了

接下来就让它去吃啊怎么吃呢

吃一堑长一智

判断下呗只要头碰到了食物就算吃到了给蛇的身体加一格

这里只要发现头的位置

和食物的位置相同就说明吃到了

此时列表的数据就不 pop 了并且食物的位置重新随机生成

那么现在每次重新渲染的时候食物的位置就是随机的了

运行起来

nice

就是要这样

不过现在这条蛇好像有外挂似得

撞到南墙都不死的

撞到自己也不死的

闹呢?你以为你充钱了么?

在这里插入图片描述

怎么判断撞到自己了呢其实就是把列表的数据拿出来比对

第一个元素是蛇头拿它跟其它元素比对

相同就代表撞到了

如何判断撞到了墙了呢

通过蛇头的位置只要不超过 [500, 500] 就没事吧

也就是说

只要蛇头都在画布之内就行

这里就直接退出了

在这里插入图片描述

效果就是这样撞到就直接拜拜

当然

画布一直频繁的更新所以可以使用 pygame 的 clock

在这里插入图片描述

在这里插入图片描述

这样子每秒不会超过 10 帧这样就不会那么浪费资源了

ok今天就分享到这里代码不难如果需要的话就在后台发送“帅蛇”获取吧

当然更多是提供下思路你还可以进一步优化下代码

也可以添加一些功能

比如添加背景音乐

添加分数统计

把食物换成cxk…

自己发挥吧

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值