<p>blit函数需要一个曲面参数</p>
<p>您可以使用内置的<a href="https://docs.python.org/3.8/library/itertools.html#itertools.cycle" rel="nofollow noreferrer">itertools.cycle</a>来创建一个生成器,该生成器将永远在图像中循环</p>
<p>以下是基于您的示例的一些未经测试的代码:</p>
<pre><code>import itertools
import pygame
pygame.init()
Window = pygame.display.set_mode((800, 600))
bg = pygame.image.load("/Users/luke.redwine/Documents/Python/PyGame/Examples/pygame lesson spaceinvaders/space.jpg")
clock = pygame.time.Clock()
animateNeutral = [pygame.image.load("/Users/luke.redwine/Documents/Python/PyGame/Space Shooter Game/Plasma T Neutral %s.png"% frame)for frame in range (1,3)]
animateFiring = [pygame.image.load("/Users/luke.redwine/Documents/Python/PyGame/Space Shooter Game/plasma T fire %s.png"% frame)for frame in range (1,7)]
neutral_animations = itertools.cycle(animateNeutral)
firing_animations = itertools.cycle(animateFiring)
neutral_dest = (50, 50)
firing_dest = (200, 50)
running = True
while running:
events = pygame.event.get()
keys = pygame.key.get_pressed()
for event in events:
if event.type==pygame.QUIT or keys[pygame.K_ESCAPE]:
pygame.quit()
Window.blit(bg, (0,0))
clock.tick(10)
Window.blit(next(neutral_animations), neutral_dest)
Window.blit(next(firing_animations), firing_dest)
pygame.quit()
</code></pre>
<p>或者,您可以手动跟踪当前动画帧的索引,每帧递增一次,然后重置一次,使其大于列表的长度</p>
<p>编辑:根据<a href="https://www.pygame.org/docs/ref/surface.html?highlight=blit#pygame.Surface.blit" rel="nofollow noreferrer">surface.blit()</a>的要求添加目的地</p>