如何在Corona SDK中停止对象沿着相同路径移动

我在场景中有玩家和敌人对象。敌人在指定路径上随机生成,而另一个是从敌方产生的玩家。如果它们在相同路径上相距一定距离,我想要停止这两个对象的移动,如果两个对象中的任何一个被开火摧毁,那么剩下的对象无论是敌人还是玩家都必须开始运动。

我已经实现了以下代码,并且在它们彼此面前时并且相距200的距离时它起作用。假设玩家开火击败敌人,那么敌人就被摧毁了,而玩家则开始移动,但如果现在另外一个敌人出现在玩家面前,那么玩家就不会停下来,继续移动,但敌人会停下。请建议一些解决方案。谢谢...

对于 j=#enemy, 1, -1 做循环
  如果敌人[j].y不为nil并且player.y不为nil
    diff=player.y-enemy[j].y
    如果敌人[j].x等于player.x
      如果diff小于等于200
        敌人[j].速度=0
        玩家速度=0
    否则
      玩家速度=-50
      敌人[j].速度=2
  结束
点赞
用户33252
用户33252

你是在设置任何 nil enemy[j].y 时都会将 player.speed=-50

也许你应该将这行代码

player.speed=-50

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

2013-10-20 16:02:48