Python pygame.transform.rotate 旋转
我刚接触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度时就切换回原来的图像。