我正在使用 pygame 来创建一种动画。我的想法是让一系列背景图像随着我开始游戏后的时间而变化。我想出了这个代码来做到这一点:
while True:
DISPLAYSURF.fill(black) #fills the displaysurf with black
for time in pygame.time.get_ticks():
if time == 2:
img_1 = img_2
DISPLAYSURF.blit(img_2, (0, 0)) #copy, pastes the surface object to fixed point
if time == 4:
img_2 = img_3
DISPLAYSURF.blit(img_3, (0, 0))
if time == 8:
img_3 = img_4
DISPLAYSURF.blit(img_4, (0, 0))
if time == 10:
img_4 = img_5
DISPLAYSURF.blit(img_5, (0, 0))
if time == 12:
img_5 = img_6
DISPLAYSURF.blit(img_6, (0, 0))
if time == 14:
img_6 = img_7
DISPLAYSURF.blit(img_7, (0, 0))
if time == 16:
img_7 = img_8
DISPLAYSURF.blit(img_8, (0, 0))
pygame.display.flip()
clock.tick(FPS)
当我运行程序时收到的反馈是“'int' object is not iterable”,这让我觉得我可能无法做我想做的事情,因为我拥有的图像在 Pygame 中被归类为表面对象。我在想两件事:
-->是否可以通过某种方式转换表面对象的类型来创建一个可以重新上传与时间相关的图像的函数?
-->我的代码是否反映了我想要它做的事情?
请让我知道并与批评一起开火!我对编码很陌生,所以任何反馈都是有帮助的!