用Python 写一个迷你小游戏

今天玩点别的吧都说 Python 除了生孩子什么都能干image 咱们今天就用 Python 写个小游戏贪吃蛇image 想必大家都玩过这玩意有没有想过你自己来实现一个这样的游戏呢那么接下来就是学习 python 的正确姿势image 想要用 Python 写一个小游戏就不得不知道 pygame 这个库了这个库是在 sdl 之上构建的 可以使用到很多 GUI、渲染画布等废话不多说 我们开始首先我们得有个窗口通过 pygame 的初始化就可以使用它提供给我们的工具了image

既然有东西可用了来设置一下游戏名称吧想了想就叫做《帅气的python》

image

恩,很符合小帅b的气质image 通过 set_model 方法可以设置窗口的大小比如:image

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

image

把这张图点开,居然发现了一张帅脸窗口有了 咱们把蛇搞上去背景我们就默认黑色吧所以蛇的颜色应该是白色 这样才显得比较凸突出通过 pygame 的 rect 方法 可以在画布上画矩形那么一开始我们的蛇应该是处于中间的蛇的长度就给 4 个格子吧 这里我们一个格子的宽高设置为 10

image

现在应该是这个样子

image

蛇有了 就差食物了一样的道理image

现在就成这样了

image

还整的有模有样的image 不过这食物吧是随机的才对而且我们刚写的代码有点糙捣腾捣腾 image

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

image

image

好了 现在蛇也有了食物也有了接下来就让蛇的身体扭!起!来!image 需要监听一下 方向键的事件 通过 pygame 的这个方法

pygame.event.get()

可以监听事件比如监听关闭

image

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

image

运行起来

只要你按了方向键

就会被监听到

image

接着定义一个蛇头的位置

image

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

所谓更新蛇身位置 主要将是将列表中的元素更新一下添加蛇头的位置pop掉蛇尾的位置每次更新 需要渲染一下画布

image

运行一下就是这样的

image

看 我把它扭起来了哎我这该死的手速差点暴露了什么image 刚刚的代码是不是很多重复抽成一个方法吧

image

蛇也有了也会扭了 食物也有了接下来就让它去吃啊怎么吃呢吃一堑长一智 判断下呗只要头碰到了食物就算吃到了给蛇的身体加一格

image

这里只要发现头的位置 和食物的位置相同就说明吃到了此时列表的数据就不 pop 了并且食物的位置重新随机生成那么现在每次重新渲染的时候食物的位置就是随机的了运行起来

image

nice

就是要这样不过现在这条蛇好像有外挂似得 撞到南墙都不死的 撞到自己也不死的闹呢?你以为你充钱了么?

image

怎么判断撞到自己了呢其实就是把列表的数据拿出来比对第一个元素是蛇头拿它跟其它元素比对 相同就代表撞到了

image

如何判断撞到了墙了呢 通过蛇头的位置只要不超过 [500, 500] 就没事吧也就是说 只要蛇头都在画布之内就行

image

这里就直接退出了

image

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

image

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

image

image

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


ok,今天就分享到这里,代码不难,如果需要的话就在后台发送“帅蛇”获取吧。当然更多是提供下思路你还可以进一步优化下代码也可以添加一些功能,比如:添加背景音乐,添加分数统计,把食物换成cxk…自己发挥吧!
一起学习python学习编程交流,建了个扣群, 没有广告也不卖资料,纯粹python流,457012314,考研党分享带血解决问题

发布了10 篇原创文章 · 获赞 0 · 访问量 14

猜你喜欢

转载自blog.csdn.net/python_9988/article/details/105718304