有没有一个简单的方法来旋转pygame中的图像?

2024-09-30 08:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始学习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的大部分时间,主要是阅读教程

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


Tags: keyhttps图像imagecomeventifdef
1条回答
网友
1楼 · 发布于 2024-09-30 08:28:52

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

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

是你的职责。将已经加载的pygame图像传递给它,它将返回一个旋转的新曲面。所以当你想旋转图像的时候

image = rotcenter(image, 5)

然后点击新图片

我用来测试这个的代码:

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()

相关问题 更多 >

    热门问题