2012-04-16 94 views
2

我正在做一些PyGame中的向量和物理操作,默認座標系對我來說很不方便。通常(0, 0)點位於左上角,但我寧願起點位於左下角。我寧願改變座標系統,而不是轉換我必須繪製的每一件東西。在PyGame座標系中更改原點的位置

是否有可能改變PyGame中的座標系使它像這樣工作?

回答

8

不幸的是,pygame不提供任何這樣的功能。最簡單的方法是創建一個函數來轉換座標,並在繪製任何對象之前使用它。

def to_pygame(coords, height): 
    """Convert coordinates into pygame coordinates (lower-left => top left).""" 
    return (coords[0], height - coords[1]) 

這將需要你的座標,並將其轉化爲給height,窗口的高度,coords,對象的左上角pygame的座標繪製。

改爲使用對象的左下角,你可以把上面的公式,並減去對象的高度:

def to_pygame(coords, height, obj_height): 
    """Convert an object's coords into pygame coordinates (lower-left of object => top left in pygame coords).""" 
    return (coords[0], height - coords[1] - obj_height)