我们通过搜索可以知道pygame中关于图像旋转的方法是pygame.transform.rotate(),但是在实际使用中,我们会发现如果我们要连续旋转一个物体,简单地使用这个方法会导致图像扭曲变形,最后完全丧失了本来的样子。
经过研究发现图像扭曲的原因就是每次使用上面方法旋转之后,图像的中心点会发生变化,所以我们的解决方案是在每次旋转的时候设置旋转中心不变。代码如下:
x = 0
y = 0
# 导入原始图像
image_raw = pygame.image.load("your image").convert_alpha()
# 设置旋转中心
core = (x,y)
# 设置角度(0~360)
angle = 60
# 旋转图像
image = pygame.transform.rotate(image_raw, angle)
# 绘制图像,并且设置中心位置,注意这里中心一定要是元组tuple
self.screen.blit(image, image.get_rect(center=tuple(core)))
如果我们需要连续旋转以及改变转转中心位置,调整core与angle的值即可。注意angle的范围用的是角度制(0~360)