Python Pygame的坐标系与颜色

在上一节教程中我们已经学过Python Pygame的相关知识,现在我们将继续学习使用 Python Pygame 来绘制图形 。

Python Pygame 的坐标系

在开始深入学习 Pygame 之前,我们需要先来看一下 Pygame 和海龟绘图在坐标系之间的区别。在海龟绘图中,原点位于屏幕的中心,越向屏幕右方,x 坐标越大,越向屏幕上方,y 坐标越大。

Pygame 则使用一种新的坐标系统,也是更加常见的面向窗口的坐标系。Pygame 窗口的左上角是原点(0, 0)。随着我们向右移动,x 坐标还是变得越来越大,但是,x 坐标没有负值。随着向下移动,y 坐标的值逐渐增加,y 坐标也没有负值。

假设我们有一个 10 个像素宽和 10 个像素高的 Surface 对象,如图 1 所示。

Python Pygame的坐标系
图 1

我们可以通过指定 X 轴和 Y 轴的整数来定位坐标,表示为两个整数的一个元组,例如 (5,2) 和(4,6)。第 1 个整数是 X 坐标,而第 2 个整数是 Y 坐标。我们可以将第 1 个坐标的像素显示为红色,第 2 个坐标的像素显示为黄色,如图 2 所示。
Python Pygame的坐标
图 2

Python Pygame 的颜色

在 Pygame 中,我们使用 RGB 色彩值表示颜色。我们曾在之前介绍过 RGB 值,这里不再赘述。例如,我们可以使用元组 (0, 0, 0) 表示黑色,(255, 255, 255) 表示白色,(255, 0, 0) 表示红色,(0, 255, 0) 表示绿色,而 (0, 0, 255) 表示蓝色。

我们并不希望每次要在程序中使用一个具体的颜色的时候,都重新编写 3 个数的一个元组,因此,我们将创建常量来保存这些元组,并且用这些元组所代表的颜色的名字来命名常量:
BLACK=(0,0,0)
WHITE=(255,255,255)
GREEN=(0,255,0)
BLUE=(0,0,255)
RED=(255,0,0)