我在场景中有玩家和敌人物体。敌人在指定的路径上随机生成,另一个是从敌人的另一侧生成的玩家。我想要停止这两个对象,如果它们在相同的路径上相隔一段距离,并且如果两个对象中的任何一个被射击破坏,那么另一个剩余的对象,无论它必须是敌人还是玩家必须开始移动。
我已经实现了下面的代码,并且它们第一次工作时,它们都在彼此前面并相隔200个距离。假设玩家射击敌人然后敌人被摧毁,玩家开始移动但是如果现在另一个敌人来到玩家面前然后玩家不停止,它继续移动,但敌人停止。请提出一些解决方案。感谢...
for j=#enemy, 1, -1 do
if(enemy[j].y~=nil and player.y~=nil then
diff=player.y-enemy[j].y
if(enemy[j].x==player.x) then
if(diff<=200) then
enemy[j].Speed=0
player.speed=0
end
end
else
player.speed=-50
enemy[j].Speed=2
end
end
答案 0 :(得分:0)
您为player.speed=-50
nil
enemy[j].y
也许你应该移动这条线
player.speed=-50
到for
循环之上。这样,玩家将默认移动,但可以被任何敌人拦截。