首页 > 解决方案 > 需要帮助使用 pygame 旋转矩形

问题描述

我的问题是相当基本的。我想做的是制作一把枪(基本上是一个矩形),枪的顶角以玩家的中心为中心。我还想说枪围绕该中心点旋转。我已经尝试了几件事,并且成功地生成了枪并使其跟随玩家。

我的问题在于旋转枪。如果我在原始图像上使用 pygame.transform.rotate,我的枪似乎会挤压,矩形似乎没有旋转,只是改变了大小。我已经知道如何计算角度,我当前的代码如下:

gun_rect.x=player_rect.x
gun_rect.y=player_rect.y
gun_rect.width=30
gun_rect.height=20
mouse_x, mouse_y = pygame.mouse.get_pos()
rel_x, rel_y=mouse_x-gun_rect.x,mouse_y-gun_rect.y
angle=(180/math.pi)*-math.atan2(rel_y,rel_x)
print(angle)
gun_surf1=pygame.transform.rotate(gun_surf,int(angle))

Gun rect 是一个矩形,gun surf 是我想要旋转的枪的图形。

非常感谢,我在下面提供了一些屏幕截图:

示例 示例

标签: pythonpygame

解决方案


推荐阅读