我這個代碼使用迭代,我不斷收到錯誤。不知道爲什麼它正在做什麼。我是這種類型的編程的新手,並在我創建的遊戲中使用它。我對這個網站也不熟悉,請耐心等待。此代碼將顯示爆炸。由於它步驟通過爆炸一切都很好,直到到達最終的圖像,我得到這個錯誤:如何停止迭代
Traceback (most recent call last):
File "C:\Users\Steve\Desktop\Project April\Alien Metor Storm v1_4\AlienMetorStorm.py", line 560, in <module>
main()
File "C:\Users\Steve\Desktop\Project April\Alien Metor Storm v1_4\AlienMetorStorm.py", line 222, in main
ships.update()
File "C:\Python31\lib\site-packages\pygame\sprite.py", line 399, in update
for s in self.sprites(): s.update(*args)
File "C:\Users\Steve\Desktop\Project April\Alien Metor Storm v1_4\explosion.py", line 26, in update
self.image = next(self.image_iter)
StopIteration
下面是代碼:
import pygame
class Explosion(pygame.sprite.Sprite):
def __init__(self,color,x,y):
pygame.sprite.Sprite.__init__(self)
self.frame = 0
self.width = 0
self.height = 0
self.x_change = 0
self.y_change = 0
self.images = []
for i in range (0,25):
img = pygame.image.load('Explosion'+str(i)+'.png').convert()
img.set_colorkey([0,0,0])
self.images.append(img)
self.image = self.images[0]
self.image_iter = iter(self.images)
self.rect = self.image.get_rect()
self.rect.left = x
self.rect.top = y
def update(self):
self.image = next(self.image_iter)
這裏的任何幫助將非常不勝感激!
如果動畫應該永遠重複,['itertools.cycle'(http://docs.python.org/2/library/itertools.html#itertools.cycle)會做到這一點。 – Cairnarvon 2013-03-19 02:10:44
謝謝你mgilson !!!! – 2013-03-19 02:14:35
不知道「next()」的第二個參數,加上一個! – SingleNegationElimination 2013-03-19 02:17:13