如何更改Pygame坐标系,以使窗口的中心为(0,0)?

时间:2020-04-30 00:48:50

标签: python pygame

我想更改pygame坐标系,以使窗口的中心为(0,0)并具有image中的负值。 有没有可能转换坐标的方法?

https://i.stack.imgur.com/sGPFt.gif

1 个答案:

答案 0 :(得分:2)

PyGame使用左上角为(0,0)的坐标系。那不能改变。

如果要将坐标系的原点移动到屏幕中心,则必须自己平移坐标。例如,编写一个转换坐标的函数:

def center_origin(surf, p):
    return (p[0] + surf.get_width() // 2, p[1] + surf.get_height() // 2)
screen.blit(my_image, center_origin(screen, (x, y)))

或使用lambda表达式:

center_origin = lambda p: (p[0] + screen.get_width() // 2, p[1] + screen.get_height() // 2)
screen.blit(my_image, center_origin((x, y))