有没有一种简单的方法可以在pygame中旋转图片?

时间:2019-03-24 13:30:52

标签: python pygame

我刚开始学习pygame,并且有一张图片[https://imgur.com/a/t24fNiA],它左右移动。由于它是一个圆,我希望它每次移动都旋转/滚动一点。

我已经在线检查了这一点,但无法真正将其应用于我自己的作品。到目前为止,我只剩下def rotcenter(image, angle):。我真的不知道从这里去哪里。

 if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    xchange = -5
                    # image rotates

                elif event.key == pygame.K_RIGHT:
                    xchange = 5
                    # image rotates

代替# image rotates,我想调用一个将图像旋转一定角度的子例程。

理想情况下,由于x的每次更改均为5,因此不应太远,但希望有人能帮助我提出解决方案。请尝试简化/解释我可能不理解的内容,我只在大约40分钟的最佳时间里一直在使用pygame,主要是阅读教程。

任何帮助将不胜感激!谢谢:)

1 个答案:

答案 0 :(得分:0)

您可以使用pygame.transform.rotate旋转图像。

def rotcenter(image, angle):
    return pygame.transform.rotate(image, angle)

将是您的职责。您将已经加载的pygame图片传递给它,并返回一个旋转的新曲面。因此,当您要旋转图像时,您会做类似的事情

image = rotcenter(image, 5)

然后将新图像设为blit。

我用来测试的代码:

import pygame

pygame.init()

display = pygame.display.set_mode((400, 400))

image = pygame.image.load('test.png') #Use the name of your image
rotated = pygame.transform.rotate(image, 90)

done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

    display.blit(image, (0, 0))
    display.blit(rotated, (100, 0))

    pygame.display.flip()

pygame.quit()