似乎每次我在 pygame 中创建一些东西时,我都必须切换行和列才能正确打印。例如,如果我有:
for col in range(COLS):
board[3][col] = 'tree'
我设置了一个绘制函数,每当棋盘单元格等于 3 时就绘制一个 Sprite 。但是,它绘制的是垂直的树木线而不是水平线。由于我想迭代第三行中的所有列,因此正确的输出应该是树的水平线。
这只是众多示例中的一个,但是有人知道 pygame 为何这样做吗?
最佳答案
我认为你的问题是因为在现实世界中我们使用两个系统来描述位置。
首先使用(x,y)
,您可以在
- 电脑屏幕
- 数学 - 图表上的点
- 所有绘图模块(不仅是
PyGame
,不仅是Python
)
第二个使用(y,x)
,您可以在
- 数学矩阵
(行,列)
- 房间号码
(楼层、门)
- cimena 门票
(行、地点)
- 地理位置
(纬度、经度)
您使用第二个系统(y,x)
来保存数据,但Pygame使用第一个系统(x,y)
来绘制数据
所以你必须记住将 (y,x)
切换为 (x,y)
([row][column]
切换为 [列][行]
)
或者您必须将数据保留为 [column][row]
((x,y)
)
关于python - Pygame 似乎翻转行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361769/