flash 小特效 粒子随机运动

                 
package { import flash.display.Sprite; import flash.geom.*; import flash.display.GradientType; public class Ball extends Sprite {  public var speed:Number;  public var angle:Number;  public var rx:Number;  public var ry:Number;  public function Ball()  {   this.graphics.beginFill(0xffffff);   this.graphics.drawCircle(0,0,1);   this.graphics.endFill();   var matrix:Matrix = new Matrix();   matrix.createGradientBox(10, 10, 0, 0, 0);   var colors:Array = [0xCCFF00,0xCCFF00];   var alphas:Array = [0,255];   var ratios:Array = [0,0xFF];   this.graphics.beginGradientFill(GradientType.RADIAL, colors, alphas, ratios, matrix);   this.graphics.drawCircle(0,0,2);   this.graphics.endFill();  } }}
import flash.events.Event;import flash.display.Sprite;import flash.filters.GlowFilter;var pixSprite:Sprite=new Sprite();addChild(pixSprite);var list:Array = [];var perAngle:Number = 2 * Math.PI / 500;for (var i:int=0; i<500; i++){ var ball:Ball=new Ball(); ball.x = Math.cos(i*perAngle) * Math.random()*100; ball.y = Math.sin(i*perAngle) * Math.random()*100; ball.angle = i * perAngle; ball.speed = 5;//Math.random() * 5 + 1; ball.rx = Math.random() * 100; ball.ry = Math.random() * 100; ball.z=Math.random()*80; ball.filters=[new GlowFilter(0xffffff)] pixSprite.addChild(ball); list.push(ball);}pixSprite.x=(stage.stageWidth-pixSprite.width)*0.7;pixSprite.y=(stage.stageHeight-pixSprite.height);addEventListener(Event.ENTER_FRAME,onRun);function onRun(event:Event):voidvar len:int = list.length; for (var i:int=0; i<list.length; i++) {  var ball:Ball = list[i] as Ball;  if (ball)  {   ball.x = Math.cos(ball.angle + ball.speed * Math.PI / 180) * (ball.rx );   ball.y = Math.sin(ball.angle + ball.speed * Math.PI / 180) * (ball.ry );   ball.speed +=  2;   ball.scaleX =  ball.scaleY=Math.random();   ball.alpha -=  0.01;   if (ball.alpha <= 0)   {    if (pixSprite.contains(ball))    {     pixSprite.removeChild(ball);     ball = null;    }    list.splice(i,1);   }  } } if (list.length == 0) {  removeEventListener(Event.ENTER_FRAME,onRun); }}


 这种效果比较小,相比那些强烈的粒子表现还是欠缺,不过小特效,就让它代码少一点就行,然而还可以产生一些比较有意思的效果,即可达到这个实验的目的,又不失去乐趣。根据上次的代码,加以小小改造。会创造一种闪闪发光的效果。

        它的基本思路:先对粒子进行一个随机分布,让它出现在预设的位置上,然后产生圆周运动。在运动过程当中,加入随机的想法。在这里,我想告诉大家,这种随机可以创造出很多意想不到的效果。加入的随机,可以对坐标随机,深度随机,透明度随机,大小随机,颜色随机,等等这些都可以加入去。在实验过程当中,多尝试这些组合就可以变化出很多效果。

    

 

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/truhfcg/article/details/86478286