首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Pygame 简介

Pygame 简介

作者头像
Crossin先生
发布2026-03-11 18:58:17
发布2026-03-11 18:58:17
400
举报

有不少小伙伴学习编程的初衷是想开发游戏。

虽然直接用 Python 开发商业游戏的情况并不多见,但通过 Python 开发小游戏,理解游戏的开发原理,熟悉游戏引擎的运作方式,也是很合适的。

今天就给大家介绍一下 Python 开发游戏最知名的框架 Pygame。

如果想看更详细一点的 Pygame 教程,可点击:

Pygame 入门 - 仿微信打飞机游戏

1. Pygame 是什么?

Pygame 是 Python 的一个免费库,专为开发 2D 游戏设计,适合刚学 Python 的新手。它能让你轻松创建贪吃蛇、打砖块等小游戏,主要功能包括:

  • 显示图片和图形,如角色、背景。
  • 处理键盘和鼠标操作。
  • 播放音效和背景音乐。
  • 检测物体碰撞。

Pygame 代码简单直观,在 Windows、Mac、Linux 上都可以运行,非常适合初学者做小游戏或练习编程。

2. 安装 Pygame

确保已安装 Python(建议选择尽量新的版本)。

打开命令行(Windows 用 CMD,Mac 用终端)。

输入命令:

代码语言:javascript
复制
pip install pygame

安装成功会有相应的提示信息。

3. Pygame 快速上手

我们用一个简单的游戏来演示 Pygame 的用法:

一个方块可在屏幕底部左右移动,自动上下弹跳,碰到随机出现的金币就会加分。按空格键暂停/继续,用方向键控制左右移动。

代码语言:javascript
复制
import pygame
import random

# 初始化 Pygame
pygame.init()

# 创建窗口
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("弹跳方块吃金币")

# 方块和金币
square = pygame.Rect(400, 550, 50, 50)  # 方块位置
coin = pygame.Rect(random.randint(0, 750), random.randint(0, 500), 30, 30)  # 金币位置
speed_x, speed_y = 5, -10  # 方块初始速度
score = 0  # 分数

# 时钟和字体
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 36)

# 游戏主循环
running = True
while running:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 键盘控制左右移动
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and square.left > 0:
        square.x -= speed_x
    if keys[pygame.K_RIGHT] and square.right < 800:
        square.x += speed_x

    # 方块上下弹跳
    square.y += speed_y
    if square.top <= 0:
        speed_y = 10  # 碰到顶部向下
    if square.bottom >= 600:
        speed_y = -10  # 碰到底部向上

    # 检测碰撞
    if square.colliderect(coin):
        score += 1
        coin.x, coin.y = random.randint(0, 750), random.randint(0, 500)

    # 绘制画面
    screen.fill((255, 255, 255))  # 白色背景
    pygame.draw.rect(screen, (255, 0, 0), square)  # 红色方块
    pygame.draw.circle(screen, (255, 255, 0), coin.center, 15)  # 黄色金币
    score_text = font.render(f"Score: {score}", True, (0, 0, 0))
    screen.blit(score_text, (10, 10))  # 显示分数

    pygame.display.flip()
    clock.tick(60)  # 60 帧每秒

pygame.quit()

代码说明:

  • 窗口和对象:创建 800x600 窗口,用 pygame.Rect 表示方块和金币。
  • 移动:方向键控制左右,speed_y 实现上下弹跳。
  • 碰撞:用 square.colliderect(coin) 检测吃金币。
  • 画面:用 screen.fill 清屏,pygame.draw 画图形,screen.blit 显示文字。

保存为 game.py,运行后用方向键移动方块,吃金币加分!

4. Pygame 的优缺点

优点:

  • 简单易学,适合 Python 新手。
  • 免费,跨平台运行。
  • 社区活跃,教程和素材丰富。

缺点:

  • 仅限 2D 游戏,功能较简单。
  • 大型游戏性能可能不足。
  • 需手动实现复杂逻辑。

5. 其他 Python 游戏框架及适合场景

以下是基于 Python 的其他游戏开发模块:

  • Pygame Zero:极简化的 Pygame 变种,适合儿童或零基础者。无需手动写事件循环,适合快速开发简单游戏(如迷宫、贪吃蛇)。
  • Arcade:现代 2D 游戏库,性能优于 Pygame,支持更多图形效果,适合稍复杂的 2D 游戏(如平台跳跃游戏)。
  • Kivy:跨平台框架,支持 PC 和移动端(Android/iOS),适合开发触摸屏游戏或交互应用(如手机小游戏)。
  • Panda3D:支持 3D 和 2D 游戏,功能强大但稍复杂,适合需要 3D 效果的项目(如简单 3D 冒险游戏)。

选择建议:

  • 零基础或小游戏:Pygame Zero,代码最少
  • 简单 2D 游戏:Pygame,平衡易用性和功能
  • 复杂 2D 游戏:Arcade,性能更好
  • 移动端游戏:Kivy
  • 3D 游戏:Panda3D

6. 总结

Pygame 是 Python 初学者开发 2D 游戏的绝佳工具,简单、免费、易上手。通过弹跳方块游戏,你可以看到 Pygame 轻松实现图形、输入和碰撞检测。相比其他 Python 游戏框架,Pygame 适合快速开发小型 2D 游戏。如果你也对游戏开发感兴趣,那就快用 Pygame,创造你的第一个游戏吧!

如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~

感谢转发点赞的各位~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档