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

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

 else angle = TARGET_ANGLE[i];
 target[i] = new Point( Math.cos( angle * Math.PI / 180 ) * starSize, Math.sin( angle * Math.PI / 180 ) * starSize );
 }
 }
 //子弹生成
 public function Run() : Bullet {
 var bullet:Bullet = new Bullet(bulletColor,slideAngle,slideSpeed);
 var targetNo:int = int(count / PATH_OBJ_NUM);
 var targetRate:int = int(count % PATH_OBJ_NUM);
 var p:Point;
 //子弹的座标
 p = Point.interpolate( target[targetNo], target[(targetNo+(TARGET_NUM-1))%TARGET_NUM], targetRate / PATH_OBJ_NUM );
 bullet.x = p.x + defX;
 bullet.y = p.y + defY;
 bullet._xx = p.x + defX;
 bullet._xy = p.y + defY;
 //子弹的移动角度
 //if( !reverse ) bullet.moveAngle = -count / PATH_OBJ_NUM / TARGET_NUM * 720 + 135;
 //else bullet.moveAngle = count / PATH_OBJ_NUM / TARGET_NUM * 720 - 135;
 bullet.moveAngle = ( -int(count / PATH_OBJ_NUM) / TARGET_NUM * 720 + 108) + ((count % PATH_OBJ_NUM) * 180 / PATH_OBJ_NUM); // Target始点角度 + 180 * rate グレイソーに入る前の奴
 waitBullet.push( bullet );
 count++;
 if ( count == TARGET_NUM * PATH_OBJ_NUM ) end = true;
 return bullet;
 }
 public function isEnd() : Boolean { return end; }
 }
 //-----------------------------
 // 子弹类
 class Bullet extends Sprite {
 public var slideFlag:Boolean = false;
 public var slideAngle:Number = 0;
 public var slideSpeed:Number = 0;
 public var slideSpeedMax:Number = 0;
 public var moveAngle:Number = 0;
 public var _xx:Number = 0;
 public var _xy:Number = 0;
 public function Bullet(color:uint,_slideAngle:Number = 0,_slideSpeed:Number = 50) {
 super();
 graphics.beginFill(color);
 graphics.drawCircle(0, 0, 5);
 graphics.endFill();
 graphics.beginFill(0xFFFFFF, 0.5);
 graphics.drawCircle(0, 0, 3);
 graphics.endFill();
 slideAngle = _slideAngle;
 slideSpeed = _slideSpeed;
 slideSpeedMax = _slideSpeed;
 slideFlag = false;
 }
 public function StartSlide():void
 {
 slideFlag = true;
 }
 }

以上就是Flash AS3代码打造绚烂的星形变幻效果的方法介绍,希望能帮到大家,谢谢阅读!