1. 什么是 Pygame?
Pygame 是一个专门用来做 2D 游戏 的 Python 库。它封装了图形、声音、键盘鼠标输入等底层操作,让你可以用简单的代码快速做出小游戏。
2. 安装
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 游戏源码,都是宝贵的学习资源。
多款游戏的代码关注后可领取: