初始化与主循环
pygame.init()
初始化所有 Pygame 模块(必须写在一开始)。
pygame.quit()
退出 Pygame(程序结束时使用)。
创建窗口
screen = pygame.display.set_mode((宽度, 高度))
建立游戏窗口,并返回一个 Surface 对象。
设置窗口标题
pygame.display.set_caption("我的游戏")
事件处理(keyboard / mouse)
Pygame 通过事件队列取得输入:
pygame.event.get()
取得所有事件(键盘、鼠标、退出按钮)。
示例:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
键盘事件判断
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
print("左键按下")
鼠标位置
x, y = pygame.mouse.get_pos()
鼠标按键状态
buttons = pygame.mouse.get_pressed()
绘图函数(画线、矩形、圆形)
画线
pygame.draw.line(screen, 颜色, 起点, 终点, 线宽)
画矩形
pygame.draw.rect(screen, 颜色, (x, y, w, h))
画圆形
pygame.draw.circle(screen, 颜色, (x, y), 半径)
Surface 操作(图像渲染)
blit():把图像画到屏幕
screen.blit(图片, (x, y))
载入图片
img = pygame.image.load("player.png")
缩放图片
img = pygame.transform.scale(img, (50, 50))
时间控制(FPS)
Clock 控制帧率
clock = pygame.time.Clock()
在循环中使用
clock.tick(60) # 限制为 60 FPS
文字渲染
载入字体
font = pygame.font.SysFont(None, 40) # None = 默认字体
文字生成 Surface
text = font.render("Score: 10", True, (255,255,255))
显示文字
screen.blit(text, (10, 10))
音乐与音效
播放背景音乐
pygame.mixer.music.load("bgm.mp3")
pygame.mixer.music.play(-1) # -1 代表循环播放
播放音效
sound = pygame.mixer.Sound("jump.wav")
sound.play()
Rect(碰撞检测最常用)
建立 Rect
player = pygame.Rect(x, y, w, h)
碰撞检测
if player.colliderect(enemy):
print("碰到了")
移动 Rect
player.x += 5
player.y -= 3
更新画面
pygame.display.update()
更新整个屏幕(常用)。
pygame.display.flip()
功能与 update 基本相同。