Python怎样制作贪吃蛇游戏
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家介绍Python怎样制作贪吃蛇游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言:文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用
千家信息网最后更新 2025年01月31日Python怎样制作贪吃蛇游戏
这篇文章给大家介绍Python怎样制作贪吃蛇游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
前言:
文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的。
据说是贪吃蛇游戏是1976
年,Gremlin
公司推出的经典街机游戏,那我们今天用Python
制作的这个贪吃蛇小游戏是一个像素版的,虽然简陋,但还是可以玩起来的
我们主要要做的内容:
创建游戏窗口
绘制贪吃蛇与食物
蛇吃食物
贪吃蛇的棋盘模型:
现在就开始我们的代码,首先,还是导入模块:
import pygameimport randomimport copy
1. 创建游戏窗口
1.1 游戏初始化
pygame.init()clock = pygame.time.Clock() # 设置游戏时钟pygame.display.set_caption("贪吃蛇-解答、源码、相关资料可私信我") # 初始化标题screen = pygame.display.set_mode((500, 500)) # 初始化窗口 窗体的大小为 500 500
1.2 初始化蛇的位置 蛇的长度 10 10 也就是蛇的 X Y 坐标
snake_list = [[10, 10]]
首先设置蛇的一个运行方向 接下来判断键盘事件在决定蛇的运行方向
蛇可以运行起来了,那么接下来就是,吃食物增加自己的长度和不吃食物在不同的位置显示
初始小蛇方向:
move_up = Falsemove_down = Falsemove_left = Falsemove_right = True
1.3 初始化食物的位置
x = random.randint(10, 490)y = random.randint(10, 490)food_point = [x, y]
1.4 开启游戏循环
running = Truewhile running: # 游戏时钟 刷新频率 clock.tick(20)
1.5 填充背景为白色
screen.fill([255, 255, 255])
1.6 绘制背景
for x in range(0, 501, 10): pygame.draw.line(screen, (195, 197, 199), (x, 0), (x, 500), 1) pygame.draw.line(screen, (195, 197, 199), (0, x), (500, x), 1) food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)
1.7绘制蛇
snake_rect = []for pos in snake_list: # 1.7.1 绘制蛇的身子 snake_rect.append(pygame.draw.circle(screen, [255, 0, 0], pos, 5, 0))
2. 绘制贪吃蛇与食物
2.1 获取蛇的长度,移动蛇的身子
pos = len(snake_list) - 1while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1
2.2 更改蛇头位置
if move_up: snake_list[pos][1] -= 10 if snake_list[pos][1] < 0: snake_list[pos][1] = 500if move_down: snake_list[pos][1] += 10 if snake_list[pos][1] > 500: snake_list[pos][1] = 0if move_left: snake_list[pos][0] -= 10 if snake_list[pos][0] < 0: snake_list[pos][0] = 500if move_right: snake_list[pos][0] += 10 if snake_list[pos][0] > 500: snake_list[pos][0] = 0
2.3 键盘控制移动职位
for event in pygame.event.get(): # print(event) # 判断按下的按键 if event.type == pygame.KEYDOWN: # 上键 if event.key == pygame.K_UP: move_up = True move_down = False move_left = False move_right = False # 下键 if event.key == pygame.K_DOWN: move_up = False move_down = True move_left = False move_right = False # 左键 if event.key == pygame.K_LEFT: move_up = False move_down = False move_left = True move_right = False # 右键 if event.key == pygame.K_RIGHT: move_up = False move_down = False move_left = False move_right = True
2.4 获取蛇的长度,移动蛇的身子
pos = len(snake_list) - 1while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1
3. 蛇吃食物
3.1 碰撞检测 如果蛇吃掉食物
if food_rect.collidepoint(pos): # 贪吃蛇吃掉食物 snake_list.append(food_point) # 重置食物位置 food_point = [random.randint(10, 490), random.randint(10, 490)] food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0) break
3.2 如果蛇吃掉了自己
head_rect = snake_rect[0]count = len(snake_rect)while count > 1: if head_rect.colliderect(snake_rect[count - 1]): running = False count -= 1pygame.display.update()
关于Python怎样制作贪吃蛇游戏就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
食物
位置
长度
制作
内容
方向
身子
移动
运行
接下来
代码
小游戏
文章
时钟
更多
背景
还是
键盘
帮助
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库 关系 定义
保障服务器运行安全吗
网络安全反诈教育教案
奶块怨灵武士服务器
杨浦区软件开发包括哪些
数据库恢复设备激活错误
2张表格查相同的数据库
深圳pos机软件开发公司
缺乏网络安全信息知识
简述网络安全的发展现状
病历模板软件开发
数据库批量保存优化
爱思助手转移和恢复数据库
虚拟币otc交易软件开发
数据库 脏表
断点追踪调用的数据库
目前网络安全监控的应用
服务器安装凝思系统
申请软件开发硕士
服务器真的能散热吗
名义软件开发
漳州兴方圆软件开发有限公司
软件开发会触范法律吗
宜品网络安全管理局
数据库华图
软件开发实习记录
山东华云网络技术公司
软件开发可以分为几个部分
蓝桥杯大赛java软件开发
服务器装系统没有足够的安装空间