Python 如何让a组中的每个精灵追逐B组中最近的精灵?
这里刚开始学习python。我想分成两组,其中一组中的每个精灵追逐另一组中与其最接近的精灵 我有一个代码,其中一组中的所有精灵追逐另一组中的单个精灵Python 如何让a组中的每个精灵追逐B组中最近的精灵?,python,pygame,Python,Pygame,这里刚开始学习python。我想分成两组,其中一组中的每个精灵追逐另一组中与其最接近的精灵 我有一个代码,其中一组中的所有精灵追逐另一组中的单个精灵 def chase(sprite, group): for entity in group: if math.hypot(entity.rect.centerx - sprite.rect.centerx, entity.rect.centery - sprite.rect.centery) < 1200:
def chase(sprite, group):
for entity in group:
if math.hypot(entity.rect.centerx - sprite.rect.centerx, entity.rect.centery - sprite.rect.centery) < 1200:
if entity.rect.left - sprite.rect.left < 0:
entity.rect.left += 2
else:
entity.rect.left -= 2
if entity.rect.top - sprite.rect.top < 0:
entity.rect.top += 2
else:
entity.rect.top -= 2
但有人告诉该组织,这是不可容忍的
有人能帮我做这两件事吗?让整群追击者看穿另一群追击者,然后向最近的人靠近
谢谢你的帮助
[…]组不可编辑
如果追逐的是一个对象,则可以通过以下方法获得对象列表:
敌方=min([e代表被追逐的精灵中的e()],
key=lambda e:pow(e.x-entity.x,2)+pow(e.y-entity.y,2))
def run(sprite, group):
for entity in group:
if math.hypot(entity.rect.centerx - sprite.rect.centerx, entity.rect.centery - sprite.rect.centery) < 65:
if entity.rect.left - sprite.rect.left < 0:
entity.rect.left -= 9
else:
entity.rect.left += 9
if entity.rect.top - sprite.rect.top < 0:
entity.rect.top -= 9
else:
entity.rect.top += 9
enemy = min([e for e in chased], key=lambda e: pow(e.x-entity.x, 2) + pow(e.y-entity.y, 2))