导语:只要你会用电脑打字,就能跟着这篇教程做出经典贪吃蛇游戏!从安装软件到代码调试,每个步骤都有详细截图和解释,遇到问题看文末解决方案,现在就开始你的第一个游戏开发吧!
一、准备开发环境(10分钟)1.1 安装Python访问python官网下载最新版本(推荐3.8+)安装时勾选 Add Python to PATH(关键步骤!)1.2 安装Pygame库打开命令提示符(Win键+R输入cmd)输入以下命令回车:pip install pygame看到 Successfully installed pygame 表示成功二、创建游戏窗口(15分钟)2.1 基础代码框架
新建 snake_game.py 文件,输入以下代码:
import pygameimport random# 初始化游戏引擎pygame.init()# 游戏窗口设置WIDTH = 800 # 窗口宽度HEIGHT = 600 # 窗口高度GRID_SIZE = 20 # 网格大小(蛇身单位)# 创建窗口对象screen = pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("我的贪吃蛇")# 颜色定义BLACK = (0, 0, 0)GREEN = (0, 255, 0)RED = (255, 0, 0)# 游戏主循环running = Truewhile running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 绘制背景 screen.fill(BLACK) pygame.display.update()pygame.quit()2.2 测试运行右键文件选择 "使用Python运行"将看到黑色游戏窗口(按右上角X关闭)三、创建蛇和食物(25分钟)3.1 定义初始蛇身在循环前添加蛇的初始数据:
# 初始蛇数据snake = [ [WIDTH//2, HEIGHT//2], # 蛇头位置 [WIDTH//2-GRID_SIZE, HEIGHT//2], # 第二节 [WIDTH//2-2*GRID_SIZE, HEIGHT//2] # 第三节]# 初始移动方向direction = "RIGHT"3.2 绘制蛇身在绘制背景后添加:
# 绘制蛇身for segment in snake: pygame.draw.rect(screen, GREEN, (segment[0], segment[1], GRID_SIZE-1, GRID_SIZE-1))3.3 生成食物添加食物相关代码:
# 生成食物函数def create_food(): return [ random.randrange(0, WIDTH//GRID_SIZE)*GRID_SIZE, random.randrange(0, HEIGHT//GRID_SIZE)*GRID_SIZE ]food = create_food() # 初始化食物# 绘制食物(放在主循环内)pygame.draw.rect(screen, RED, (food[0], food[1], GRID_SIZE-1, GRID_SIZE-1))四、实现移动控制(30分钟)4.1 处理键盘事件在主循环的事件处理中添加:
elif event.type == pygame.KEYDOWN: if event.key == pygame.K_UP and direction != "DOWN": direction = "UP" elif event.key == pygame.K_DOWN and direction != "UP": direction = "DOWN" elif event.key == pygame.K_LEFT and direction != "RIGHT": direction = "LEFT" elif event.key == pygame.K_RIGHT and direction != "LEFT": direction = "RIGHT"4.2 实现自动移动在游戏循环中添加移动逻辑:
# 计算新蛇头位置head = snake[0].copy()if direction == "UP": head[1] -= GRID_SIZEelif direction == "DOWN": head[1] += GRID_SIZEelif direction == "LEFT": head[0] -= GRID_SIZEelif direction == "RIGHT": head[0] += GRID_SIZE# 插入新蛇头snake.insert(0, head)snake.pop() # 移除尾部五、实现吃食物与成长(20分钟)5.1 检测吃食物在移动代码后添加:
# 检测是否吃到食物if head[0] == food[0] and head[1] == food[1]: food = create_food() # 不删除尾部实现成长 snake.append(snake[-1])5.2 分数显示添加分数变量和显示代码:
# 在循环前初始化分数score = 0# 创建字体对象(放在初始化部分)font = pygame.font.Font(None, 36)# 在主循环内绘制分数text = font.render(f"分数:{score}", True, (255,255,255))screen.blit(text, (10, 10))# 在吃到食物时加分score += 10六、添加碰撞检测(25分钟)6.1 边界检测在移动代码后添加:
# 检测撞墙if (head[0] < 0 or head[0] >= WIDTH or head[1] < 0 or head[1] >= HEIGHT): print("撞墙了!游戏结束") running = False6.2 自撞检测添加检测函数:
# 检测是否咬到自己for segment in snake[1:]: if head == segment: print("咬到自己了!") running = False七、最终完整代码# 完整代码请访问GitHub仓库(此处省略重复代码)# 完整代码结构包含以上所有模块,可直接复制运行八、常见问题解决问题现象
解决方案
窗口无法关闭
检查事件循环是否包含pygame.QUIT处理
蛇移动卡顿
在循环开始添加 clock.tick(10) 控制速度
食物生成在蛇身上
在create_food()中添加位置校验
按键无反应
检查方向键冲突判断逻辑
扩展功能建议:
增加难度选择(通过clock.tick()参数调节速度)添加游戏开始/结束界面更换蛇身皮肤(修改颜色或贴图)添加吃食物的音效结语:跟着这个教程,你已经完成了一个基础版贪吃蛇!欢迎在评论区晒出你的作品,遇到问题随时提问。下期我们将教大家如何给游戏添加特效和音效!
大家可以在评论区说一说在开发过程中的疑问和心得,一起交流。也可以说一说下一期大家了解内容,小编会尽量满足大家的需求!点赞评论加关注,关注更多内容更新。
#Python入门 #游戏开发教程 #编程小白必看 #经典游戏复刻 #PyGame实战
转载请注明来自德立,本文标题:《cmd最简单的小游戏代码移动端(用Python做一个贪吃蛇小游戏零基础保姆级教程附完整代码)》
京公网安备11000000000001号
京ICP备11000001号
还没有评论,来说两句吧...