2010-07-19 88 views
2

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

目前我的表面是原始表面的1.5倍,那么需要绘制的所有东西都会向上移动一定的量(以确保负坐标变为正值)并绘制。

有没有更容易/替代的方式做到这一点?

回答

0

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

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

+0

这基本上就是我所拥有的。我创建了adj_up和adj_down函数 – filinep 2010-07-19 08:36:44

+0

这是最简单的方法。 – 2010-07-19 10:05:03

0

如果它类似于RPG地图情况,那里有世界坐标和屏幕坐标: 使用将世界翻译为本地的函数,反之亦然。

但我不确定你是否在寻找Rect的属性?

rect.bottomright = (width, height) # bottom right at window corner 

如果你想使用中心坐标位块,VS左上角为(0,0)

ship.rect.center = (20, 30) # don't need to translate by adding w/2 to topleft 

参见:Rect.move_ip()

1

一个简单的办法是写一个线性映射功能从世界坐标到pygame屏幕坐标

def coord(x,y): 
    "Convert world coordinates to pixel coordinates." 
    return 320+170*x, 400-170*y 

并使用它时drawi世界上所有的物体。看一个完整的例子here