python - Pygame,按轴旋转图像

标签 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 制作的线条的算法,但我不知道如何用图像实现这一点。

感谢任何和所有见解,

谢谢

最佳答案

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

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

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

关于python - Pygame,按轴旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22545234/

相关文章:

Python:如何在不获取 IndexError 的情况下检查不存在的列表元素的值?

python - OpenCV:将 Rodrigues() 的旋转矩阵应用于一个点

c - 旋转 90 度二维字符数组

python - 使用python基于文本列表着色单词

Python 和 Pandas : Re-indexing after selecing entries

php - 使用 FFmpeg 进行视频旋转

c++ - 通过 memset 函数将 2D int 数组元素设置为 1

c# - 使用 C# 的二维图形

java - 用 Java 绘制图像,在上网本上慢得要命

python - 如何在Elasticsearch返回的Python中解串字符串?