介绍模块
本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个贪吃蛇,看看这个是你小时候玩的游戏吗?
最小开发框架
详情请看此文章:
Pygame游戏模块介绍二:最小开发框架代码_pygame最小开发框架_牧子川的博客-CSDN博客
Pygame和sys模块
import pygame # 制作游戏时要使用的模块
import sys # python的标准库,对内部各功能模块进行初始化创建,系统模块
random模块
需要在屏幕上随机生成食物的位置,通过随机一个位置来表示食物的位置
from random import randint
详情请看此文章:Pygame游戏模块介绍一:random模块简介_random 范围_牧子川的博客-CSDN博客
相关功能
窗口尺寸改变
调节游戏屏幕的大小
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
食物创建
# 初始化食物的位置
food_x, food_y = random.randrange(1, (WIDTH // 10)) * 10, random.randrange(1, (HEIGHT // 10)) * 10
蛇的创建
snake_x, snake_y = WIDTH // 2, HEIGHT // 2
# 随机选择蛇的初始移动方向
directions = ['UP', 'DOWN', 'LEFT', 'RIGHT']
snake_direction = random.choice(directions)
# 初始化蛇的身体
snake_body = [(snake_x, snake_y)]
键盘事件
# 监听键盘事件
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP and snake_direction != 'DOWN':
snake_direction = 'UP'
if event.key == pygame.K_DOWN and snake_direction != 'UP':
snake_direction = 'DOWN'
if event.key == pygame.K_LEFT and snake_direction != 'RIGHT':
snake_direction = 'LEFT'
if event.key == pygame.K_RIGHT and snake_direction != 'LEFT':
snake_direction = 'RIGHT'
界面内容显示
当蛇吃到食物时,分数增加并且增加长度
分数增加
# 显示得分
score_text = font.render("得分: " + str(score), True, WHITE)
screen.blit(score_text, (10, 10))
蛇吃到食物变长
# 蛇的身体增长
snake_head = (snake_x, snake_y)
snake_body.insert(0, snake_head)
if snake_x == food_x and snake_y == food_y:
snake_length += 1
score += 1 # 更新得分
food_x, food_y = random.randrange(1, (WIDTH // 10)) * 10, random.randrange(1, (HEIGHT // 10)) * 10
else:
snake_body.pop()
图片界面
扩展可添加功能
1.对贪吃蛇移动速度设置
2.长按同一方向加速移动
3.同时出现多个食物
4.添加背景音乐
5.更改界面控件
源码获取
欢迎关注我的公众号:@AI算法与电子竞赛
硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!