AS3 - 随机出现的对象如何永远不会相互接触?

时间:2015-06-09 06:02:13

标签: actionscript-3 flash-cc

我有两个在舞台上随机出现的物体,但我希望它们在出现时永远不会相互碰触。

object1.x = Math.random() * stage.stageWidth;
object1.y = Math.random() * stage.stageHeight;
object2.x = Math.random() * stage.stageWidth;
object2.y = Math.random() * stage.stageHeight;

2 个答案:

答案 0 :(得分:0)

As @DodgerThud has mentioned;解决这个问题的方法是反复尝试放置下一个对象,直到它符合你的标准(不与另一个对象碰撞)。这是/ /src /src/app.ts /src/app.js /lib /lib/lib.ts /lib/lib.js 循环可用于的完美示例,例如:

while

答案 1 :(得分:0)

如果舞台上只有2个物体,那么很容易。在EnterFrame事件中,您只需输入if条件

    if(!obj1.hitTestObject(obj2)) {
        obj1.x = Math.random() * stage.stageWidth;
        obj1.y = Math.random() * stage.stageHeight;
    }

但是如果你有很多对象,那么你必须遍历所有对象并检查相同的条件。

for(var i:int=0; i<yourObjNumber; i++) {
      var hits:boolean = false;
      if(!obj1.hitTestObject(getChildAt(i))) {
           hits = true;     
      }
      if(hits) {
            obj1.x = Math.random() * stage.stageWidth;
            obj1.y = Math.random() * stage.stageHeight;
      }
}

希望这有帮助!

祝你有个美好的一天!