2011-01-16 6 views
1

Ich mache eine Draufsicht Zombie Survival-Spiel in AS3. Ich möchte die Feinde in Wellen erzeugen, die durch "Frames" definiert sind, oder den Unterschied zwischen einem größeren Rechteck und einem kleineren darin, wie ein Bilderrahmen. Genau hier ist mein Code, der ziemlich ineffizient ist. Ich habe mich gefragt, ob es einen besseren Weg gibt. Dieser Code nicht funktioniert entweder rechts, alle Feinde Laichen in der rechten unteren Ecke des Bildschirms:AS3 zufälliger Punkt zwischen zwei Rechtecken

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(); 
     } 
    } 

Antwort

1

Eine einfache Lösung wäre es, 4 Rechtecke mit dem inneren Rechteck und das äußere Rechteck zu definieren. (links, rechts, oben, unten) Zuerst wählen Sie zufällig ein Rechteck und dann müssen Sie Ihren Punkt innerhalb dieses Rechtecks ​​finden.

Verwandte Themen