AS3でモグラ叩き

AS3の練習を兼ねて、モグラ叩きを作ってみた。このくらいのものなら、AS2とさほど変わらない感じです。 イベントの登録に一貫性があるので、AS2より混乱しなくなったかも。Eclipseが独自変数などを補完してくれるのが一番うれしいですね。 ---( package { import flash.display.MovieClip; import flash.text.TextField; import flash.text.TextFieldType; import flash.display.Graphics; import flash.events.Event; import flash.events.MouseEvent; public class test extends MovieClip { private var score:Number = 0; // スコア private var score_txt:TextField; // スコア表示用 private var counterMogura:Number = 50; // モンスター生成タイミング private var mogura_array:Array; // モンスター管理用 public function test() { mogura_array = new Array(); score_txt = new TextField(); // スコア表示テキストを作成 score_txt.x = 10; score_txt.y = 10; score_txt.type = TextFieldType.DYNAMIC; score_txt.text = "SCORE: 0"; this.addChild(score_txt); this.addEventListener(Event.ENTER_FRAME, this.onEnterFrame); } private function onEnterFrame(event:Event):void {// 毎フレーム発生するイベント counterMogura++; if (counterMogura > 20) { // モンスター出現? counterMogura = 0; if (mogura_array.length < 70) { var mogura_mc:MovieClip = new MovieClip(); // モグラ生成 mogura_mc.graphics.beginFill(Math.random() * 0xFFFF); mogura_mc.graphics.drawEllipse(0,0,30,30); mogura_mc.graphics.endFill(); mogura_mc.x = Math.random() * root.width; mogura_mc.y = Math.random() * root.height; mogura_array.push(mogura_mc); this.addChild(mogura_mc); // イベントの登録 mogura_mc.addEventListener(MouseEvent.CLICK, mogura_onClick); } } else { var i:Number; // モンスターを動かす for (i = 0; i < mogura_array.length; i++) { var mc:MovieClip = mogura_array[i]; mc.x += Math.random() * 24 - 12; mc.y += Math.random() * 24 - 12; } } } private function mogura_onClick(event:Event):void { // モグラをクリックした時のイベント var mc:MovieClip = MovieClip(event.target); var index:Number = mogura_array.indexOf(mc); if (index >= 0) { score++; score_txt.text = score.toString(); mogura_array.splice(index, 1); this.removeChild(mc); mc = null; } } } } ---)
投稿者:kujira 2006年06月26日 23:34

トラックバック

このエントリーのトラックバックURL:
http://aoi-project.com/presents/mt/mt-tb.cgi/7