为什么我的 Pygame 精灵像碰撞盒一样旋转?

Why is my Pygame sprite rotating like a collision box?

是的,这是我在 Python/Pygame 中遇到的所有问题和错误中的一个,对我来说是最奇怪的。所以我刚刚学会了如何在 Pygame 中旋转某些东西,除了这个 sprite 之外,其他一切都很好。

这是它旋转的原因:rotated_roads = pygame.transform.rotate(roads, angle)

这就是 blits 的原因:screen.blit(rotated_roads, (240 + x - 465, 0))

我不知道问题出在哪里,但它没有按照我预期的方式旋转;对我来说,它看起来有点像一个碰撞箱一样在旋转。 [精灵的形状是一个矩形]我不知道是什么问题,所以你能帮我吗??

谢谢。

How do I rotate an image around its center using PyGame?

获取原图的矩形并设置位置。获取旋转后图片的矩形,通过原矩形的中心设置中心位置:

rotated_roads = pygame.transform.rotate(roads, angle)
rect = roads.get_rect(topleft = (240 + x - 465, 0))
rotated_rect = rotated_roads.get_rect(center = rect.center)
screen.blit(rotated_roads, rotated_rect)