两个矩形之间的AS3随机点

时间:2011-01-16 18:02:44

标签: actionscript-3

我正在AS3制作一个顶级视图僵尸生存游戏。我想在由“帧”定义的波浪中产生敌人,或者更大的矩形与其中较小的矩形之间的差异,如相框。现在这里是我的代码,这是非常低效的。我想知道是否有更好的方法。此代码也无法正常工作,所有敌人都会在屏幕右下角产生:

    public static function waveOne():Point {

        var inner:Rectangle = Waves.WAVE_ONE_RECTANGLE_1;
        var outer:Rectangle = Waves.WAVE_ONE_RECTANGLE_2;

        var x:Number = Math.random();
        var y:Number = Math.random();

        x = x * outer.width;
        y = y * outer.height;

        trace(x + " " + y);

        if (((x > outer.left && x < inner.left) || (x > inner.right && x < outer.right)) && ((y > outer.top && y < inner.top) || (y > inner.bottom && y < outer.bottom))) {
            return(new Point(x, y));
        }
        else {
            return waveOne();
        }
    }

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用内部矩形和外部矩形定义4个矩形。 (左,右,上,下) 首先,你随机选择一个矩形,然后你必须在那个矩形内找到你的点。