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):void{ var 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.****.net/jiangjunshow