Flash AS3代码打造绚烂的星形变幻效果

2019-10-07 22:25:17王旭

 {
 // 小星
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 0), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 1), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 2), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 3), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 4), 3 ) );
 // 大星
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 0), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 1), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 2), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 3), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 4), 5 ) );
 }
 }
 }
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
 import flash.display.Sprite;
 import flash.geom.Point;
 //-----------------------------
 // 图案类
 class Pattern {
 private var reverse:Boolean = false;
 private var starSize:Number = 150;
 private var bulletColor:uint = 0x000000;
 private var slideAngle:Number = 0;
 private var slideSpeed:Number = 0;
 private var end:Boolean = false;
 private var count:int = 0;
 private var defX:int = 0;
 private var defY:int = 0;
 private var target:Array = new Array();
 private static const PATH_OBJ_NUM:int = 20; // 子弹数
 private static const TARGET_NUM:int = 5;
 private static const TARGET_ANGLE:Array = [ 270 + 72 * 3, 270 + 72 * 1, 270 + 72 * 4, 270 + 72 * 2, 270 ]; // 通过的目标地点的角度
 private static const TARGET_ANGLE2:Array = [ 270 + 72 * 2, 270 + 72 * 4, 270 + 72 * 1, 270 + 72 * 3, 270 ]; //
 public var waitBullet:Array = new Array();
 public function Pattern(
 _gx:int = 0, _gy:int = 0,
 _rev:Boolean = false,
 _starSize:Number = 80,
 _bulletColor:uint = 0x000000,
 _slideAngle:Number = 0,
 _slideSpeed:Number = 0
 ) {
 count = 0;
 defX = _gx;
 defY = _gy;
 reverse = _rev;
 starSize = _starSize;
 bulletColor = _bulletColor;
 slideAngle = _slideAngle;
 slideSpeed = _slideSpeed;
 for ( var i:int = 0; i < 5; i++ )
 {
 var angle:Number = TARGET_ANGLE[i];
 if ( reverse ) angle = TARGET_ANGLE2[i] + 180; // 反転