0

我在场景中有玩家和敌人的物体。敌人是在指定路径上随机生成的,另一个是从敌人对面生成的玩家。如果它们在同一路径上相距一定距离,我想停止这两个物体,并且如果两个物体中的任何一个被射击摧毁,那么另一个剩余的物体(无论它必须是敌人还是玩家)都必须开始移动。

我已经实现了下面的代码,当它们都在彼此前面并且相距 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
4

1 回答 1

0

您正在设置player.speed=-50任何nil enemy[j].y

也许你应该移动这条线

player.speed=-50

for循环上方。这样,玩家将默认移动,但可以被任何敌人阻止。

于 2013-10-20T16:02:48.997 回答