AS3のオープンソースライブラリ「stardust」の中身(1):Clock

2010年01月17日  投稿者:ハセガワ
パーティクル生成数を決めるClockについて。よくクラスファイルを調べもせずに数値だけ変えておもしろがってたのを反省(はしていない)
ブックマークする:

進行状況

→第6回:何か作りたい(1):よくあるきらきらしたやつ(ソースあり)
→第5回:Classの中身(2):Emitter2Dクラス(調査中)
→第4回:Classの中身(1):Clockクラス(調査中)
→第3回:お勉強(3):パーティクルがよける…Deflectorクラスで障害物
→第2回:お勉強(2):マウスで作る、やめる…Emitter.active
→第1回:お勉強(1):とりあえず何か出来た

パーティクルを生成する手順(2D)

stardustを使ってパーティクルを作るための基本的な順番は、公式マニュアルによると

(1)Clockを作る…パーティクル発生の頻度
(2)Emitterを作ってclockをセット…エミッターって発生装置みたいなもの(?)
(3)Rendererを作る…画面表示用オブジェクト(?)
(4)Renderer.addEmitter( Emitter )でエミッターをレンダラーにセット
(5)Emitter.addInitializer( 発生場所とか発生させるspiteとか )でエミッターを初期設定
(6)Emitter.addAction( 寿命の長さとか重力とか )で実際の動きを設定
(7)Event.ENTER_FRAMEやTimerEvent.TIMERに、Emitter.step()を関連づけて表示を更新

となっている。

Clockの種類(idv.cjcat.stardust.common.clocks

ClockはEmitter.step()が呼ばれる毎に生成するパーティクルの数を設定する。
1.SteadyClock…決まった数のパーティクルを生成
2.ImpulseClock…Emitter.impulse()が呼ばれたタイミングでパーティクルを生成
3.RandomClock…step毎にランダムな数のパーティクルを生成

SteadyClock(ticksPerCall:Number)

生成されるパーティクルの数は一定(初期値=0)

//設定例
var clock:SteadyClock = new SteadyClock(8);//stepごとに8つ生成
ImpulseClock(impulseCount:int, repeatCount:int )

Clock.impulse()を呼んだタイミングで特定の回数のパーティクルを作る。
「地面に足がついた時、ふわっと砂が舞う」とかに使えそう。
impulseCount(初期値0)…同時に生成されるパーティクル数、
repeatCount(初期値1)…何回生成するか。

//設定例
var clock:ImpulseClock = new ImpulseClock(8, 1);//stepごとに8つ生成
…略…
clock.impulse();//これを呼び出した時、生成
FlashPlayerをインストールするか、JavaScriptをONにしてください。
RamdomClock(random:Randam)

ランダムな数のパーティクルを作る(初期値=null)
Emitter.step()が呼ばれたタイミングでランダムな数のパーティクルを生成する。

//emitter.step()の度にパーティクルを5~15個生成する
var rndClock:RandomClock = new RandomClock( new UniformRandom( 10, 5) );


その他、ClockCollection()でいくつかのClockをグループにしておけるみたいなので後で報告。

できなかったこと、やりたいこと。

・マウスクリックでパーティクルON/OFFは、emitter.activeで簡単に切り替えられた。。。ちゃんと読め>自分

僕が買った、もしくは買う予定の参考書
ブックマークする
FlaTech+を購読する
  • 全記事を含むRSSfeed
  • このページをブックマーク: