当前位置: 首页 > article >正文

Python教程:制作贪吃蛇游戏存以exe文件运行

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键退出游戏。

图片


http://www.kler.cn/news/361760.html

相关文章:

  • wait和sleep的区别
  • 【从零开始的LeetCode-算法】3075. 幸福值最大化的选择方案
  • 嵌套div导致子区域margin失效问题解决
  • 正版代理:UFS Explorer Professional Recovery,新版 Ver. 10.10 功能
  • 爬虫基础--requests模块
  • 磁编码器的工作原理和特点
  • 将java项目jar包打包成exe服务
  • Spring Boot框架下的电影评论网站实现
  • 数据结构_day2
  • 【数据结构与算法】时间、空间复杂度详解
  • 【MySQL】入门篇—基本数据类型:使用ORDER BY进行排序
  • arcgis使用教程与简介
  • 【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
  • Python高级爱心图案绘制教程:利用数学与代码艺术创作
  • 如何在 MySQL 中处理大量的 DELETE 操作
  • 期货外盘行情源7个市场CTP推送式服务说明
  • 【计算机网络 - 基础问题】每日 3 题(五十三)
  • 在HarmonyOS中, API引入从@kit与@ohos有哪些不同 ?
  • 出血性脑卒中临床智能诊疗建模
  • 【Android】事件分发机制
  • 长沙办执照真的不需要地址吗
  • 2024软考网络工程师笔记 - 第10章.组网技术
  • 网址工具(完善中)
  • 本地编译运行Thingsboard-gateway之python版本——modbus数据采集
  • ThingsBoard最新版本(v3.8)源码编译运行
  • STM32应用详解(3)GPIO应用之通过IO端口读取按键的状态