在pygame中,我遇到了两种不同的方式来调用精灵组中所有精灵的函数:
1)example_group.update()
2)for sprite_loop in example_group: sprite_loop.update()
除非我误会了,否则他们都完成了同样的事情。
两种方法之间是否存在显着差异?一个更好的表现吗?我认为第一种方法会更快,但是我阅读的大多数示例代码都使用了第二种方法。
这是一些代码,可以将其放在上下文中:
import pygame
class Test(pygame.sprite.Sprite):
def __init__(self):
super(Test, self).__init__()
self.x = 0
example_group.add(self)
def update(self):
self.x += 1
if self.x == 1:
print self.x
example_group = pygame.sprite.Group()
sprite1 = Test()
sprite2 = Test()
sprite3 = Test()
while True:
#THIS IS WHERE MY QUESTION IS
#DO I USE:
example_group.update()
#OR SHOULD I USE:
for sprite_loop in example_group:
sprite_loop.update()
它们确实相同。组更新功能调用Sprite更新。两者都应等效地表现。无论您打电话是哪个是您的首选。
您可以比较它们的文档
sprite.update
group.update
如果您不想在某些条件下更新所有精灵,则使用for循环