在pygame中使用负坐标的最佳方法是什么?
目前我的表面是原始表面的 1.5 倍,然后需要绘制的所有内容都向上移动一定量(以确保负坐标变为正坐标)并绘制。
有没有更简单/替代的方法来做到这一点?
在pygame中使用负坐标的最佳方法是什么?
目前我的表面是原始表面的 1.5 倍,然后需要绘制的所有内容都向上移动一定量(以确保负坐标变为正坐标)并绘制。
有没有更简单/替代的方法来做到这一点?
一个简单的解决方案是写一个从世界坐标到pygame屏幕坐标的线性映射函数
def coord(x,y):
"Convert world coordinates to pixel coordinates."
return 320+170*x, 400-170*y
并在绘制所有世界对象时使用它。在这里查看一个完整的示例。
如果它类似于 RPG 地图情况,您有世界坐标和屏幕坐标:使用将世界转换为本地的函数,反之亦然。
但我不确定你是否在寻找 Rect 的属性?
rect.bottomright = (width, height) # bottom right at window corner
如果您想使用中心坐标进行 blit,而左上角为 (0,0)
ship.rect.center = (20, 30) # don't need to translate by adding w/2 to topleft
无法从 0,0 移动曲面的原点。
实现你自己的绘图类,它将所有传入的坐标转换到表面的空间中。