Flash
Flash AS3 雪を降らせる効果
FlashのAction Scriptだけで簡単に雪を降らせてみましょう!
何も描画する必要はありません。
Flint Particle Systemというオープンソースのライブラリを使います。
パーティクル、とはこういう形のない粉というか、粉末というか、破片のようなものをいうそうです。
開発者のRichard Lordさん(スキンヘッド)に感謝!
http://flintparticles.org/
- 上記 Flint Particle System からソースコードをダウンロードします。
http://code.google.com/p/flint-particle-system/downloads/list
- 解凍してできるorgというディレクトリにFlashのクラスパスを通しましょう。
- 500×400ピクセルで背景が黒(背景が白だと雪が降ってもわからない)のFlaファイルを作成します。
- 最初のフレームに、次のように書きます。
import flash.geom.Point;
import org.flintparticles.common.counters.*;
import org.flintparticles.common.displayObjects.RadialDot;
import org.flintparticles.common.initializers.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.emitters.Emitter2D;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.zones.*;
var emitter:Emitter2D = new Emitter2D();
var renderer:DisplayObjectRenderer = new DisplayObjectRenderer();
addChild( renderer );
renderer.addEmitter( emitter );
emitter.counter = new Steady( 100 );
emitter.addInitializer( new ImageClass( RadialDot, 2 ) );
emitter.addInitializer( new Position( new LineZone( new Point( -5, -5 ), new Point( 505, -5 ) ) ) );
emitter.addInitializer( new Velocity( new PointZone( new Point( 0, 65 ) ) ) );
emitter.addAction( new Move() );
var scaleImage:ScaleImageInit = new ScaleImageInit( 0.75, 2 );
emitter.addInitializer( scaleImage );
var drift:RandomDrift = new RandomDrift( 15, 15 );
emitter.addAction( drift );
emitter.start();
Ctrl+Enterでムービーを見てみましょう。
できあがりのイメージと、上記スクリプトの解説は下記のサイトをよく読んでください。
http://flintparticles.org/tutorials/snowfall