Pygame,按轴旋转图像

时间:2014-03-20 21:14:39

标签: python rotation 2d pygame physics

我试图旋转加载的图像,但我需要按特定的轴旋转。

我这样做:

arm  = pygame.image.load('w1.png').convert()
arms = [pygame.transform.rotate(arm, deg) for deg in range(0, 360, 4)]

然后我用:

遍历武器的标记
count+=1
arms[count]

旋转确实有效,但它没有在轴上正确旋转。我编写的算法可以旋转用pygame.draw.line创建的行,但我不知道如何使用图像来实现这一点。

任何和所有见解,

感谢

1 个答案:

答案 0 :(得分:1)

旋转图像后,在blitting之前,获取图像的新rect,并将rect的位置属性更改回原始位置。

IE:保存矩形中心,旋转图像,获取新的矩形,设置新的正中心,blit。

使用center属性只围绕图像中心旋转它,但是使用其中一个角可以让你走在正确的路径上。

def RESET_ROTATED_RECT(old_rect,rotated_image):
    old_pos=old_rect.center
    newrect=rotated_image.get_rect()
    newrect.center=old_pos
    return newrect

我经常使用中心,但没有使用其他位置。可能值得修补。