行っているですが、実際にソースコードを入力しビルドしてみると
僕が予想していたのは、真ん中から四方八方に黒い玉が打ち出されると言うものでしたが
実際には、黒い点が画面の真ん中に表示されるのみで、思っていたのとはかけ離れていました。
このコードの問題点は何でしょうか?
package{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite{
private var bullets : Array;
private const MAX:int = 100;
public function Main(){
bullets = new Array();
//MAXbulletに回読み込む
for( var degree:int = 0; degree < 360; degree++ ){
var bullet:Bullet = new Bullet( 0x0, 5, 232, 232, Math.cos(degree * Math.PI / 180), Math.sin( degree * Math.PI / 180 ));
addChild( bullet );
bullets.push( bullet );
}
addEventListener( Event.ENTER_FRAME, onEnterFrame );
}
//毎フレーム更新
private function onEnterFrame( event:Event ):void{
for( var i:int = 0; i < bullets.lenght; i++ ){
bullets[i].move();
if( bullets[i].check()){//もし指定範囲からはみ出てたら
removeChild( bullets[i] );
bullets.splice( i--, 1 );//bulletsを消し、同時に配列も消す
}
}
}
}
}
import flash.display.Sprite;
//bulletを継承
class Bullet extends Sprite{
private var _x:Number = 0;
private var _y:Number = 0;
private var vx:Number;
private var vy:Number;
override public function get x():Number { return _x }
override public function get y():Number { return _y }
override public function set x( value:Number ):void{
super.x = _x = value;
}
override public function set y( value:Number ):void{
super.y = _y = value;
}
public function Bullet( color:int, radius:int, x:int, y:int, vx:Number, vy:Number ){
graphics.beginFill( color );
graphics.drawCircle( 0,0,radius );
graphics.endFill();
this.x = x;
this.y = y;
this.vx = vx;
this.vy = vy;
}
public function move() : void{
this.x += vx;
this.y += vy;
}
//正(true)か負(false)の値を返す関数:Boolean
public function check() : Boolean{
if( x < -50 || stage.stageWidth + 50 < x || y < -50 || stage.stageHeight + 50 < y ){
return true;
}
return false;
}
}