我有几个组来对我的变量进行排序(即 -
enemy_group = pygame.sprite.Group()
)。然而,我不知道如何“捕获”单个敌人并移动它(并且,理想情况下,攻击玩家)。有人可以帮我做这个吗?
class Enemy(pygame.sprite.Sprite):
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
# insert pygame.Surface variables
def update(self):
# move entity accordingly (which is what I'm trying to do)
# game loop
enemy_group = pygame.sprite.Group()
enemy_group.update()
enemy_group.draw(screen)
pygame.sprite.Group
是可迭代的。因此,您可以遍历 for
循环中的元素:
for enemy in enemy_group:
# [...]
sprites()
方法:
返回该组包含的所有精灵的列表。
获取Sprites列表并通过订阅访问它们:
emeny_list = enemy_group.sprites()
enemy_1 = emeny_list[0]
像Rabbid76的答案一样,您可以使用一个变量来保存精灵组中的精灵,然后像使用列表一样获取精灵并更改其位置或类似的东西。
列表=敌人_组.sprites()
list[0].rect.x = 100
list[0].rect.y = 200
我最近在 python 中制作 2048 时也遇到了同样的问题,这种方法最适合当你没有为每个精灵提供单独的变量时,就像在你的程序中``