# 一个简单的 Python 小游戏

我们可以使用 python 的 pygame 快速建立一个弹球游戏，环境依赖
* 安装 python
* 使用 python 的包管理程序，安装依赖的 pygame 包：`pip install pygame`

编写你的第一游戏代码`game.py`，代码如下：

```python
import sys
import pygame

# 初始化
pygame.init()

# 游戏对话框大小
size = width, height = 320, 240

# 小球移动速度
speed = [2, 2]

# 黑色背景
black = 0, 0, 0

# 创建游戏屏幕
screen = pygame.display.set_mode(size)

# 加载小球 gif
ball = pygame.image.load("ball.gif")

# 获取游戏图片的矩形框
ballrect = ball.get_rect()

# 游戏循环
while 1:
    # 判断是否退出
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

    # 按 speed 速度，计算移动小球后的矩形框
    ballrect = ballrect.move(speed)

    # 更新速度（大小和方向）
    if ballrect.left < 0 or ballrect.right > width:
        speed[0] = -speed[0]
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = -speed[1]

    # 绘制黑色背景
    screen.fill(black)

    # 绘制小球
    screen.blit(ball, ballrect)

    # 使用双缓存机制刷新屏幕
    pygame.display.flip()
```

其中小球 gif 资源如下：

![](./test/ball.gif)

使用命令`python game.py`启动游戏，游戏启动后的画面如下

![](./test/ball_game.gif)

以下关于上述游戏代码说法错误的是？

## 答案

编写游戏只能使用 pygame

## 选项

### A

一个游戏程序，一般有一个死循环，返回绘制游戏画面

### B

许多游戏的渲染，都会采用双缓存机制，在背后的帧里面做渲染，再一次性刷新到前台帧

### C

在游戏循环里，可以检测各种交互事件，并响应事件，从而完成游戏玩家和游戏的互动，例如：退出游戏