Python pygame.transform.rotate 旋转

2 投票
2 回答
2020 浏览
提问于 2025-04-17 06:24

我刚接触pygame和python。现在我需要做一个转盘,它应该在随机的时间停下来。我想的办法是用random.randint(0, 360)来实现,这样可以让它在随机的时间停下。但是现在,我只能让它转90度,要不然它就会移出屏幕。

任何帮助都会很有用。

谢谢

import sys, pygame, time

pygame.init()

screen = pygame.display.set_mode([600,600])
black = 255,255,0
ball = pygame.image.load("wheel.gif")
temp = pygame.image.load("wheel.gif")


ballrec = ball.get_rect().center

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    screen.fill(black)
    ball = pygame.transform.rotate(ball, 45)
    ballrec = ball.get_rect().center
    screen.blit(ball, ballrec)
    pygame.display.flip()
    time.sleep(1)

2 个回答

0

正如这里提到的,如果你要旋转的角度不是90的倍数,那么就需要给图片加上边框。你可以把图片放在中心点(128, 128)来显示,或者根据需要裁剪掉图片的边缘部分。

1

我注意到,如果你一直对一个已经旋转过的物体进行重复旋转,比如在 ball = pygame.transform.rotate(ball, 45) 这行代码中,那个图像会变得扭曲,并且可能会开始移出屏幕。我通常会保留原始图像,当我旋转到360度时就切换回原来的图像。

撰写回答