我正在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();
}
}
答案 0 :(得分:1)
一个简单的解决方案是使用内部矩形和外部矩形定义4个矩形。 (左,右,上,下) 首先,你随机选择一个矩形,然后你必须在那个矩形内找到你的点。