我正在用Python做一个小小的铁塔防御项目,我有一些关于目标的问题,我不明白。
所以我有一个塔的列表和一个到处移动的敌人的列表。
每次迭代主游戏逻辑的while循环时,我都有一个函数来检查每个生成的塔是否都有一个目标。如果他们没有,我运行一个函数,应该能找到一个。
for tw in tower_list:
tw.render(window)
if tw.target == None:
print(tw)
tw.target = find_target(tw)
print(tw.target)这是在find_target函数中完成的。我派塔台去找目标。
def find_target(tw):
for e in enemy_list:
closest = 100000,100000
print("Checking distance for enemy", e)
dx = tw.x - e.x
dy = tw.y - e.y
if dy < 0:
dy *= -1
if dx < 0:
dx *= -1
if dx <= closest[0] and dy <= closest[1]:
closest = dx, dy
print("Closest one is ",e,"at distane",closest)
return e我的模拟目前包括3个不同的敌人,我将他们分散开来,这样每个塔都应该有一个不同的敌人作为目标。但它总是只检查并返回相同的敌人。

这可能是我忘记的愚蠢的事情,但我现在真的想不起来。
https://stackoverflow.com/questions/51327509
复制相似问题