2
我正在做一些PyGame中的向量和物理操作,默認座標系對我來說很不方便。通常(0, 0)
點位於左上角,但我寧願起點位於左下角。我寧願改變座標系統,而不是轉換我必須繪製的每一件東西。在PyGame座標系中更改原點的位置
是否有可能改變PyGame中的座標系使它像這樣工作?
我正在做一些PyGame中的向量和物理操作,默認座標系對我來說很不方便。通常(0, 0)
點位於左上角,但我寧願起點位於左下角。我寧願改變座標系統,而不是轉換我必須繪製的每一件東西。在PyGame座標系中更改原點的位置
是否有可能改變PyGame中的座標系使它像這樣工作?
不幸的是,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)