返回

python代码小游戏:初始化 Pygame

来源:网络   作者:   日期:2025-11-12 13:38:24  

用Python轻松编写代码小游戏:从入门到实践


Python 是一种简单易学、功能强大的编程语言,特别适合初学者入门,而编写小游戏是学习编程的一个有趣且有效的方式,本文将带你从零开始,使用 Python 编写一个简单的小游戏,并介绍一些常用的工具和技巧,帮助你轻松入门。


为什么选择 Python 来编写小游戏?

  1. 语法简洁:Python 的语法非常接近自然语言,初学者可以快速上手。
  2. 丰富的库支持:Python 提供了许多现成的游戏开发库,如 Pygame,可以大大简化开发过程。
  3. 跨平台:Python 编写的游戏可以在多种操作系统上运行,如 Windows、Mac 和 Linux。

准备工作

在开始编写游戏之前,我们需要安装一些必要的工具:

python代码小游戏:初始化 Pygame

  1. 安装 Python:访问 Python 官网 下载并安装最新版本的 Python。

  2. 安装 Pygame 库:Pygame 是一个专门用于开发 2D 游戏的库,打开命令行(Windows 上是“命令提示符”,Mac 上是“终端”),输入以下命令安装:

    python代码小游戏:初始化 Pygame

    pip install pygame
  3. 选择一个代码编辑器:推荐使用 VS Code、PyCharm 或 Sublime Text,这些工具对 Python 支持良好,且有丰富的插件。


编写第一个小游戏:贪吃蛇

下面是一个简单的贪吃蛇游戏代码,我们将逐步解析它。

python代码小游戏:初始化 Pygame

import pygame
import random
import time
pygame.init()
# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 设置游戏窗口
width, height = 600, 400
game_display = pygame.display.set_mode((width, height))
pygame.display.set_caption('贪吃蛇游戏')
# 设置游戏时钟
clock = pygame.time.Clock()
snake_block = 10
snake_speed = 15
# 显示分数
font_style = pygame.font.SysFont(None, 30)
def message(msg, color):
    mesg = font_style.render(msg, True, color)
    game_display.blit(mesg, [width/6, height/3])
def gameLoop():
    game_over = False
    game_close = False
    # 蛇的初始位置
    x1 = width / 2
    y1 = height / 2
    # 蛇的移动方向
    x1_change = 0
    y1_change = 0
    # 蛇的身体
    snake_list = []
    length_of_snake = 1
    # 食物的位置
    foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
    foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
    while not game_over:
        while game_close:
            game_display.fill(black)
            message("游戏结束!按 Q 退出,按 C 重新开始", red)
            pygame.display.update()
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_over = True
                        game_close = False
                    if event.key == pygame.K_c:
                        gameLoop()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x1_change = -snake_block
                    y1_change = 0
                elif event.key == pygame.K_RIGHT:
                    x1_change = snake_block
                    y1_change = 0
                elif event.key == pygame.K_UP:
                    y1_change = -snake_block
                    x1_change = 0
                elif event.key == pygame.K_DOWN:
                    y1_change = snake_block
                    x1_change = 0
        # 检查是否撞墙
        if x1 >= width or x1 < 0 or y1 >= height or y1 < 0:
            game_close = True
        # 更新蛇的位置
        x1 += x1_change
        y1 += y1_change
        game_display.fill(black)
        pygame.draw.rect(game_display, red, [foodx, foody, snake_block, snake_block])
        snake_head = []
        snake_head.append(x1)
        snake_head.append(y1)
        snake_list.append(snake_head)
        if len(snake_list) > length_of_snake:
            del snake_list[0]
        # 检查是否撞到自己
        for x in snake_list[:-1]:
            if x == snake_head:
                game_close = True
        # 显示蛇和分数
        for x in snake_list:
            pygame.draw.rect(game_display, white, [x[0], x[1], snake_block, snake_block])
        message("得分: " + str(length_of_snake - 1), white)
        pygame.display.update()
        # 检查是否吃到食物
        if x1 == foodx and y1 == foody:
            foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
            foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
            length_of_snake += 1
        clock.tick(snake_speed)
    pygame.quit()
    quit()
gameLoop()

代码解析

  1. 初始化:使用 pygame.init() 初始化 Pygame 库。
  2. 游戏窗口:通过 pygame.display.set_mode() 创建游戏窗口。
  3. 游戏循环gameLoop() 函数是游戏的核心,它处理用户输入、更新游戏状态、绘制图形等。
  4. 蛇的移动:通过 x1_changey1_change 控制蛇的移动方向。
  5. 碰撞检测:检测蛇是否撞墙或撞到自己。
  6. 食物生成:随机生成食物的位置,当蛇吃到食物时,身体长度增加。

运行游戏

将上述代码保存为 snake_game.py,然后在命令行中运行:

python snake_game.py

游戏启动后,使用键盘的上下左右键控制蛇的移动,吃到食物后,蛇的长度会增加,同时得分也会增加,如果撞到墙壁或自己的身体,游戏结束。


扩展与改进

你可以尝试对这个游戏进行以下改进:

  1. 添加音效:使用 Pygame 的 mixer 模块添加背景音乐和音效。
  2. 增加难度:随着得分的增加,蛇的移动速度加快。
  3. 美化界面:使用图片和更丰富的颜色来美化游戏界面。
  4. 添加关卡:设计多个关卡,每个关卡有不同的障碍物或食物生成规则。

其他小游戏推荐

除了贪吃蛇,你还可以尝试编写以下游戏:

  • 打砖块:经典的休闲游戏,使用挡板反弹球来击碎砖块。
  • 井字棋:经典的两人对战游戏,锻炼逻辑思维。
  • 太空侵略者:玩家控制飞船射击外星人,躲避子弹。

通过编写小游戏,你不仅能巩固 Python 的基础知识,还能培养逻辑思维和创造力,希望本文能帮助你迈出游戏开发的第一步!如果你对编程感兴趣,不妨从一个小游戏开始,享受编程的乐趣吧!

分类: 编程
责任编辑: 今题网
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。

文章已关闭评论!