2010-07-19 67 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