教你用 python 写一个小游戏 如何用python做一个简单的小游戏
off999 2024-12-28 14:43 22 浏览 0 评论
今天玩点别的吧都说 Python 除了生孩子什么都能干
咱们今天就用 Python 写个小游戏贪吃蛇
想必大家都玩过这玩意
有没有想过你自己来实现一个这样的游戏呢
那么接下来就是学习 python 的正确姿势
想要用 Python 写一个小游戏就不得不知道 pygame 这个库了
这个库是在 sdl 之上构建的
可以使用到很多 GUI、渲染画布等
废话不多说
我们开始
首先我们得有个窗口通过 pygame 的初始化就可以使用它提供给我们的工具了
既然有东西可用了来设置一下游戏名称吧
想了想就叫做《帅气的python》
恩,很符合小帅b的气质
通过 set_model 方法可以设置窗口的大小
比如:
那么这时候得到的窗口就是这样
把这张图点开,居然发现了一张帅脸
窗口有了
咱们把蛇搞上去
背景我们就默认黑色吧所以蛇的颜色应该是白色
这样才显得比较凸突出
通过 pygame 的 rect 方法
可以在画布上画矩形
那么一开始我们的蛇应该是处于中间的
蛇的长度就给 4 个格子吧
这里我们一个格子的宽高设置为 10
现在应该是这个样子
蛇有了
就差食物了
一样的道理
现在就成这样了
还整的有模有样的
不过这食物吧是随机的才对
而且我们刚写的代码有点糙捣腾捣腾
这里把食物的位置随机了一下这样每次一运行就会随机显示了
好了
现在蛇也有了食物也有了
接下来就让蛇的身体扭!起!来!
需要监听一下
方向键的事件
通过 pygame 的这个方法
pygame.event.get()
可以监听事件
比如监听关闭
又比如这样来监听我们的方向键
运行起来
只要你按了方向键
就会被监听到
接着定义一个蛇头的位置
蛇头居中指引方向
每次触发一个方向键就让蛇头的位置发生相应的变化然后更新蛇身的位置
所谓更新蛇身位置
主要将是将列表中的元素更新一下
添加蛇头的位置pop掉蛇尾的位置
每次更新
需要渲染一下画布
运行一下就是这样的
看
我把它扭起来了
哎我这该死的手速差点暴露了什么
刚刚的代码是不是很多重复抽成一个方法吧
蛇也有了也会扭了
食物也有了
接下来就让它去吃啊怎么吃呢
吃一堑长一智
判断下呗只要头碰到了食物就算吃到了给蛇的身体加一格
这里只要发现头的位置
和食物的位置相同就说明吃到了
此时列表的数据就不 pop 了并且食物的位置重新随机生成
那么现在每次重新渲染的时候食物的位置就是随机的了
运行起来
nice
就是要这样
不过现在这条蛇好像有外挂似得
撞到南墙都不死的
撞到自己也不死的
闹呢?你以为你充钱了么?
怎么判断撞到自己了呢其实就是把列表的数据拿出来比对
第一个元素是蛇头拿它跟其它元素比对
相同就代表撞到了
如何判断撞到了墙了呢
通过蛇头的位置只要不超过 [500, 500] 就没事吧
也就是说
只要蛇头都在画布之内就行
这里就直接退出了
效果就是这样撞到就直接拜拜
当然
画布一直频繁的更新所以可以使用 pygame 的 clock
这样子每秒不会超过 10 帧这样就不会那么浪费资源了
ok今天就分享到这里代码不难如果需要的话就在后台发送“帅蛇”获取吧
当然更多是提供下思路你还可以进一步优化下代码
也可以添加一些功能
比如添加背景音乐
添加分数统计
把食物换成cxk...
自己发挥吧
那么我们下回见peace
关注我
学习 Python 没烦恼
相关推荐
- Python函数参数和返回值类型:让你的代码更清晰、更健壮
-
在Python开发中,你是否遇到过这些抓狂时刻?同事写的函数参数类型全靠猜调试两小时发现传了字符串给数值计算函数重构代码时不知道函数返回的是列表还是字典今天教你两招,彻底解决类型混乱问题!让你的...
- 有公司内部竟然禁用了python开发,软件开发何去何从?
-
今天有网友在某社交平台发文:有公司内部竟然禁止了python开发!帖子没几行,评论却炸锅了。有的说“太正常,Python本就不适合做大项目”,还有的反驳“飞书全员用Python”。暂且不说这家公司...
- 写 Python 七年才发现的七件事:真正提高生产力的脚本思路
-
如果你已经用Python写了不少脚本,却总觉得代码只是“能跑”,这篇文章或许会刷新你对这门语言的认知。以下七个思路全部来自一线实战,没有花哨的概念,只有可落地的工具与习惯。它们曾帮我省下大量无意义...
- 用Python写一个A*搜索算法含注释说明
-
大家好!我是幻化意识流。今天我们用Python写一个A*搜索算法的代码,我做了注释说明,欢迎大家一起学习:importheapq#定义搜索节点类,包括当前状态、从初始状态到该状态的代价g、从该状态...
- 使用python制作一个贪吃蛇游戏,并为每一句添加注释方便学习
-
今天来设计一个贪吃蛇的经典小游戏。先介绍下核心代码功能(源代码请往最后面拉):游戏功能:-四个难度等级:简单(8FPS)、中等(12FPS)、困难(18FPS)、专家(25FPS)-美...
- Python 之父 Guido van Rossum 宣布退休
-
Python之父GuidovanRossum在推特公布了自己从Dropbox公司离职的消息,并表示已经退休。他还提到自己在Dropbox担任工程师期间学到了很多东西——Python的类型注解(T...
- 4 个早该掌握的 Python 类型注解技巧
-
在Python的开发过程中,类型注解常常被忽视。但当面对一段缺乏类型提示、逻辑复杂的代码时,理解和维护成本会迅速上升,极易陷入“阅读地狱”。本文整理了4个关于Python类型注解的重要技巧...
- 让你的Python代码更易读:7个提升函数可读性的实用技巧
-
如果你正在阅读这篇文章,很可能你已经用Python编程有一段时间了。今天,让我们聊聊可以提升你编程水平的一件事:编写易读的函数。请想一想:我们花在阅读代码上的时间大约是写代码的10倍。所以,每当你创建...
- Python异常模块和包
-
异常当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG例如:以`r`方式打开一个不存在的文件。f=open('...
- 别再被 return 坑了!一文吃透 Python return 语句常见错误与调试方法
-
Pythonreturn语句常见错误与调试方法(结构化详解)一.语法错误:遗漏return或返回值类型错误错误场景pythondefadd(a,b):print(a+b)...
- Python数据校验不再难:Pydantic库的工程化实践指南
-
在FastAPI框架横扫Python后端开发领域的今天,其默认集成的Pydantic库正成为处理数据验证的黄金标准。这个看似简单的库究竟隐藏着哪些让开发者爱不释手的能力?本文将通过真实项目案例,带您解...
- python防诈骗的脚本带注释信息
-
以下是一个简单但功能完整的防诈骗脚本,包含URL检测、文本分析和风险评估功能。代码结构清晰,带有详细注释,适合作为个人或家庭防诈骗工具使用。这个脚本具有以下功能:文本诈骗风险分析:检测常见诈骗关键...
- Python判断语句
-
布尔类型和比较运算符布尔类型的定义:布尔类型只有两个值:True和False可以通过定义变量存储布尔类型数据:变量名称=布尔类型值(True/False)布尔类型不仅可以自行定义,同时也可通过...
- 使用python编写俄罗斯方块小游戏并为每一句添加注释,方便学习
-
先看下学习指导#俄罗斯方块游戏开发-Python学习指导##项目概述这个俄罗斯方块游戏是一个完整的Python项目,涵盖了以下重要的编程概念:-面向对象编程(OOP)-游戏开发基础-数据...
- Python十大技巧:不掌握这些,你可能一直在做无用功!
-
在编程的世界里,掌握一门语言只是起点,如何写出优雅、高效的代码才是真功夫。Python作为最受欢迎的编程语言之一,拥有简洁明了的语法,但要想真正精通这门语言,还需要掌握一些实用的高级技巧。一、列表推导...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)