Pygame,通过轴旋转图像
我想把加载的图片旋转,但需要按照特定的轴来旋转。
我之前是这样做的:
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 个回答
2
在你旋转图片之后,记得在绘制之前,先获取图片的新矩形区域,然后把这个矩形的位置属性改回到原来的位置。
简单来说,就是先保存矩形的中心点,旋转图片,获取新的矩形,再把新的矩形中心设置回去,然后再绘制。
使用中心点属性只会让图片围绕中心旋转,但如果试试用角落的某个点,可能会更容易找到正确的方法。
def RESET_ROTATED_RECT(old_rect,rotated_image):
old_pos=old_rect.center
newrect=rotated_image.get_rect()
newrect.center=old_pos
return newrect
我经常使用中心点,但还没尝试过其他位置。可以试着玩一玩。