在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()
答案 0 :(得分:0)
他们也是如此。组更新函数调用Sprite更新。两者都应该具有同等效力。无论你打电话的是你的偏好。
您可以比较它们的文档
如果您不想在特定条件下更新所有精灵,则可以使用for循环