以下是错误我得到:对象不是可迭代
Traceback (most recent call last):
File "C:\Users\Mendel Hornbacher\My programs\Spaceblaster\SpaceBlaster0.0.2b.py", line 95, in <module>
animate()
File "C:\Users\Mendel Hornbacher\My programs\Spaceblaster\SpaceBlaster0.0.2b.py", line 53, in animate
ship.hit(astroid_list)
File "C:\Users\Mendel Hornbacher\My programs\Spaceblaster\SpaceBlaster0.0.2b.py", line 34, in hit
if pygame.sprite.spritecollide(self, item, False):
File "C:\Python33\lib\site-packages\pygame\sprite.py", line 1515, in spritecollide
return [s for s in group if spritecollide(s.rect)]
TypeError: 'Astroid' object is not iterable
,这些都是涉及到的类:
动画:
def animate(): ship.hit(astroid_list) ship.move() screen.fill([0,0,0]) astroid_list.draw(screen) screen.blit(ship.image, ship.rect) pygame.display.flip()
self.hit(以'船'级)
def hit(self, group): for item in group: group.remove(item) if pygame.sprite.spritecollide(self, item, False): self.die() group.add(item)
astroid_list
astroid_list = pygame.sprite.Group()
如果这意味着什么,我运行Windows 8专业版。 如果上面的代码不够用,我会在评论中发布整个代码。
您将无法在评论中发布整个代码,顺便说一句。 –
但您可以在问题中编辑更多信息(请参阅编辑链接) –
您不应该在同时遍历对象时尝试删除对象。 –