当前位置:首页>python>Pygame 入门:用 Python 开发游戏

Pygame 入门:用 Python 开发游戏

  • 2026-10-11 07:14:40
Pygame 入门:用 Python 开发游戏

1. 什么是 Pygame?

Pygame 是一个专门用来做 2D 游戏 的 Python 库。它封装了图形、声音、键盘鼠标输入等底层操作,让你可以用简单的代码快速做出小游戏。

2. 安装

pip install pygame

3. 核心概念(只需知道这4个)

概念

说明

示例

Surface

一块画布,窗口、图片、文字都是 Surface

screen = pygame.display.set_mode((800,600))

Rect

矩形区域,用来定位和碰撞检测

rect = pygame.Rect(100,200,50,50)

事件

用户的点击、按键等操作

pygame.event.get()

主循环

游戏不断重复:处理输入→ 更新数据 → 重绘画面

while running:

4. 最简游戏模板(万能骨架)

import pygameimport syspygame.init()screen = pygame.display.set_mode((800, 600))clock = pygame.time.Clock()running = Truewhile running:    # 1. 事件处理    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = False        if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:            running = False    # 2. 更新逻辑(写你的游戏逻辑)    # 3. 绘制画面    screen.fill((0,0,0))          # 黑色背景    # 画一个红色矩形    pygame.draw.rect(screen, (255,0,0), (100,100,50,50))    pygame.display.flip()         # 刷新屏幕    clock.tick(60)                # 每秒60帧pygame.quit()sys.exit()

5. 完整小示例:用键盘控制方块移动

import pygameimport syspygame.init()screen = pygame.display.set_mode((800, 600))clock = pygame.time.Clock()# 方块的位置和速度x, y = 400, 300speed = 5running = Truewhile running:    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = False    # 获取键盘按键状态(连续移动)    keys = pygame.key.get_pressed()    if keys[pygame.K_LEFT]:   x -= speed    if keys[pygame.K_RIGHT]:  x += speed    if keys[pygame.K_UP]:     y -= speed    if keys[pygame.K_DOWN]:   y += speed    # 绘制    screen.fill((0,0,0))    pygame.draw.rect(screen, (0,255,0), (x, y, 50, 50))    pygame.display.flip()    clock.tick(60)pygame.quit()sys.exit()

6. 关键点总结

  • 事件:pygame.event.get() 处理点击关闭、按键等一次性动作

  • 按键状态:pygame.key.get_pressed() 用于持续移动

  • 刷新:pygame.display.flip() 不能忘,否则画面不动

  • 帧率:clock.tick(60) 让游戏速度稳定

进一步

  • 加载图片:img = pygame.image.load('pic.png')

  • 播放声音:pygame.mixer.Sound('beep.wav').play()

  • 碰撞检测:if rect1.colliderect(rect2):

    Pygame 的官方提供了丰富的教程和示例(https://www.pygame.org/)。社区中也有大量现成的项目可供学习,从 Gitee上的“pygame projects”(https://gitee.com/pygame-project)到各类开源的 2D 游戏源码,都是宝贵的学习资源。

多款游戏的代码关注后可领取:

最新文章

随机文章