python - Pygame 似乎翻转行和列?

标签 python pygame

似乎每次我在 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/

相关文章:

Python html 处理

python - 无法检索存储库 : sandbox. 的存储库元数据 (repomd.xml) 请验证其路径并重试

python - 在 Python 中读取图像文件并计算 Canny 边缘过滤器

python - 为什么这段代码没有制作雨滴网格?

python - Bazel:从 py_library 中的 python 文件创建 py_binary

python - 如何包含另一个文件中的 cython 代码

Python 邻居都指向相同的值

python - pygame显示自动调整大小

python - 如何将 .py 转换为 .exe?

python - 如何在 pygame 中使用多处理