我有两个在舞台上随机出现的物体,但我希望它们在出现时永远不会相互碰触。
object1.x = Math.random() * stage.stageWidth;
object1.y = Math.random() * stage.stageHeight;
object2.x = Math.random() * stage.stageWidth;
object2.y = Math.random() * stage.stageHeight;
答案 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;
}
}
希望这有帮助!
祝你有个美好的一天!