Python,作为一种解释型、面向对象、动态数据类型的高级程序设计语言,其简洁易懂的语法和丰富的库使得它成为开发小游戏的理想选择。
下面,我们就来一步步教大家如何用Python制作一个贪食蛇小游戏,并将其打包成exe程序,让你即使没有Python环境也能轻松运行。
一、安装必要的库
首先,我们需要安装pygame库,它是一个用于编写视频游戏的Python模块。你可以在Anaconda Terminal中通过pip来安装:
pip install pygame
二、初始化游戏窗口
首先我们要生成贪食蛇游戏的初始窗口:
import pygame
import sys
import random
import time
# 初始化pygame
pygame.init()
# 设置游戏窗口大小
win_width, win_height = 640, 480
window = pygame.display.set_mode((win_width, win_height))
pygame.display.set_caption('贪食蛇小游戏')
窗口默认尺寸是640×480,你可以条件这两个参数来调整窗口大小。
三、定义蛇和食物
有了初始窗口,接下来我们需要生成蛇的主体(一个白色的长方形),以及食物(绿色方块):
# 定义颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
# 蛇的初始位置和大小
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
snake_speed = 15 # 初始速度,数值越小速度越快
direction = 'RIGHT' # 初始方向
# 食物的初始位置
food_pos = [random.randrange(1, win_width // 10) * 10, random.randrange(1, win_height // 10) * 10]
food_spawn = True
上面的代码涉及一些重要参数:
蛇的初始位置是通过二维坐标定义的,用户可以根据需求自行修改,但不可超过初始窗口的边界;
蛇的移动速度默认是15,如果觉得速度太慢可以改为更大的数值;
食物的初始位置可以任意指定。在后续的循环过程中,如果蛇吃掉了当前的食物,系统会自动随机生成新的食物。
四、游戏主循环
接下来,我们需要构造游戏的主循环语句,主要完成下列任务:
根据用户的操作来更新蛇的位置;
判断蛇是否吃掉了食物;
判断是否需要更新蛇的长度并生成新的食物。
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
if direction != 'DOWN':
direction = 'UP'
if event.key == pygame.K_DOWN:
if direction != 'UP':
direction = 'DOWN'
if event.key == pygame.K_LEFT:
if direction != 'RIGHT':
direction = 'LEFT'
if event.key == pygame.K_RIGHT:
if direction != 'LEFT':
direction = 'RIGHT'
if event.key == pygame.K_ESCAPE:
running = False
# 更新蛇的位置
head = list(snake_body[0])
if direction == 'UP':
head[1] -= 10
if direction == 'DOWN':
head[1] += 10
if direction == 'LEFT':
head[0] -= 10
if direction == 'RIGHT':
head[0] += 10
snake_body.insert(0, list(head))
# 检查是否吃到食物
# ......此处省略部分代码
# 绘制食物和蛇
pygame.draw.rect(window, GREEN, (food_pos[0], food_pos[1], 10, 10))
for pos in snake_body:
pygame.draw.rect(window, WHITE, (pos[0], pos[1], 10, 10))
# 检查游戏结束条件,确保只有碰到边界或自身时才结束游戏
# ......此处省略部分代码
pygame.quit()
sys.exit()
五、打包成exe程序
最后,我们只需要把上述的代码打包成exe程序即可。
为了将Python脚本打包成exe程序,你可以使用pyinstaller库。首先,你需要在命令行中(例如Anaconda Terminal)安装它:
pip install pyinstaller
然后,使用以下命令将你的Python脚本(假设脚本名为snake_game.py)打包成exe程序。
例如我们上面的代码脚本是保存在D盘里,那么在打包的时候需要写出该脚本的绝对路径:
pyinstaller --onefile D:\snake.py --distpath D:\
打包完成后,你会在D盘下面找到生成的exe文件。
双击打开exe文件即可运行程序,方向键控制方向,Esc键退出游戏。