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])
これはあなたの座標を取得し、描画するためのpygameのの座標に変換し、height
与えられ、窓の高さ、およびcoords
、オブジェクトの左上隅ます。
代わりに、オブジェクトの左下隅を使用するには、上記の式を取り、オブジェクトの高さを引くことができます。
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)