Comet 敵光球のランダム出現
♥0 |
Line 54 |
Modified 2010-11-15 16:43:42 |
MIT License
archived:2017-03-10 15:45:54
ActionScript3 source code
/**
* Copyright cohakim ( http://wonderfl.net/user/cohakim )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/u4wy
*/
package {
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.display.*;
import flash.events.*;
[SWF(backgroundColor=0x000000, frameRate=24, width=480, height=400)]
public class Enemy3 extends MovieClip {
// -------------------------------------------------------------------------
// literals
// -------------------------------------------------------------------------
public static const RADIUS:uint = 3;
public static const DIAMETER:uint = RADIUS * 2;
public static const FILL_COLOR:uint = 0xFFCCFF;
// -------------------------------------------------------------------------
// instance variables
// -------------------------------------------------------------------------
var tweens:Array = new Array();
// -------------------------------------------------------------------------
// game state
// -------------------------------------------------------------------------
static var appearRate:Number = 2;
static var scale:Number = 1.0;
// -------------------------------------------------------------------------
// constructor
// -------------------------------------------------------------------------
public function Enemy3() {
super();
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
}
// -------------------------------------------------------------------------
// event handler
// -------------------------------------------------------------------------
private function onAddedToStage(e:Event) {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
//
//
//
private function onEnterFrame(e:Event) {
generateEnemyFields();
}
//
//
//
private function onMotionChange(e:TweenEvent) {
}
private function onRemovedFromStage(e:Event) {
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
tweens.forEach(function(tw:Tween, index:int, array:Array) {
tw.fforward();
});
}
// -------------------------------------------------------------------------
// draw methods
// -------------------------------------------------------------------------
//
// 敵オブジェクトを作成
//
private function generateEnemyFields() {
var count:int = 0;
while(count <= appearRate) {
// 敵の出現位置を算出し、ステージに送る
var enemy:Sprite = new Sprite();
enemy.x = Math.random() * stage.stageWidth;
enemy.y = Math.random() * DIAMETER;
enemy.graphics.beginFill(FILL_COLOR);
enemy.graphics.drawCircle(0, 0, RADIUS);
addChild(enemy);
// 敵の落下モーションを設定
var tw:Tween;
tw = new Tween(enemy, "y", None.easeNone, 0, stage.stageHeight, stage.stageHeight / 6, false);
tw.addEventListener(TweenEvent.MOTION_CHANGE, onMotionChange);
tw.addEventListener(TweenEvent.MOTION_FINISH, function (e:TweenEvent) {
tweens.shift();
removeChild(e.currentTarget.obj);
});
tweens.push(tw);
count++;
}
}
}
}