pygame中的负坐标

时间:2010-07-19 08:22:19

标签: python pygame coordinates geometry-surface

在pygame中使用负坐标的最佳方法是什么?

此刻我的表面是原始表面的1.5倍,然后需要绘制的所有内容向上移动一定量(以确保负坐标变为正)并绘制。

有没有更容易/替代的方法呢?

3 个答案:

答案 0 :(得分:1)

一个简单的解决方案是从世界坐标到pygame屏幕坐标

编写线性映射函数
def coord(x,y):
    "Convert world coordinates to pixel coordinates."
    return 320+170*x, 400-170*y

并在绘制所有世界对象时使用它。请查看here以获取完整示例。

答案 1 :(得分:0)

无法从0,0移动曲面的原点。

实现自己的绘图类,它将传入的所有坐标转换为曲面空间。

答案 2 :(得分:0)

如果它类似于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

另请参阅:Rect.move_ip()