本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.7节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.7 像素坐标
“Hello World”程序所创建的窗口,只不过是屏幕上叫作像素(pixel)的小方点的组合。每个像素最初都是黑色的,但是可以设置为一种不同的颜色。假设我们只有一个8像素8像素的Surface对象,而不是一个400像素宽和300像素高的Surface对象,并且,为X 轴和Y 轴添加了数字,然后,就可以很好地将其表示为如图2-4所示的样子。
我们可以使用一个笛卡尔坐标系统(Cartesian Coordinate system)来表示一个特定的点。X 轴上的每一列和Y 轴的每一行都有一个地址,也就说从0~7的一个整数,我们可以通过指定X 轴和Y 轴的整数来定位任何的像素。
例如,在上面的88图像中,我们可以看到XY 坐标为(4, 0)、(2, 2)、(0, 5)和(5, 6)的像素显示为黑色,而坐标为(2, 4)的像素显示为灰色。XY 坐标也叫作点(point)。如果你已经上过数学课或者学习过笛卡尔坐标,你可能会注意到,Y 坐标从最顶部的0开始,然后向下增加,而不是向上增加。这就是为什么在Pygame中(以及几乎每一种编程语言中),笛卡尔坐标是有效的。
Pygame框架通常将笛卡尔坐标表示为两个整数的一个元组,例如,(4, 0)或(2, 2)。第1个整数是X 坐标,而第2个整数是Y 坐标(我在《Invent Your Own Computer Games with Python》一书的第12章详细地介绍了笛卡尔坐标)。