APEのGroup

  • 2008 年 5月 22 日
  • kosuke

APEがシュミレーションを行うには、グループをAPEngine.addGroupメソッドで設定します。
グループには、粒子や複合体等をメンバーとして登録し、メンバーはシュミレーションに基づいて表示されます。


Groupクラスは、グループに加えたメンバー同士、また他のグループとの衝突を判定します。
Particles、Constraints、Compositesをメンバーに含むことができます。
以下のサンプルは赤、緑、青でグループが分かれています。

サンプル

This movie requires Flash Player 10.0.0

 

■Group(collideInternal:Boolean = false)
グループのインスタンスを作ります。
collideInternal:Boolean = グループに加えたメンバー同士の衝突を判定するか。trueだと衝突します。

 

・プロパティ

■collideInternal:Boolean
グループに加えたメンバー同士の衝突を判定するかどうか。trueだと衝突します。

■collisionList:Array
グループと衝突判定をするグループが格納されています。
・addCollidableで衝突判定を設定したグループが格納されます。
・AグループにaddCollidableでBグループを衝突判定した場合、AグループのcollisionListには、Bグループが格納されますが、BグループのcollisionListにAグループは格納されません。

■composites:Array
グループに追加した複合素材が格納されています。

 

・メソッド

■addCollidable(g:Group):void
引数のグループとの衝突判定を設定します。
g:Group = 衝突判定をするグループ。
・AグループにBグループとCグループとの衝突判定を設定するとします。この時、BグループとCグループは衝突判定されません。サンプルでは赤グループに緑、青グループを衝突判定し、緑グループに対して青グループを衝突判定しています。

■addCollidableList(list:Array):void
衝突判定をするグループをまとめて設定します。
list:Array = 衝突判定をするグループを格納した配列。

■addComposite(c:Composite):void
グループのメンバーに複合素材を加えます。
c:Composite = 追加する複合素材。

■cleanup():void
全てのグループメンバーのcleanupメソッドを実行します。

■init():void
全てのグループメンバーのinit()メソッドを実行します。

■getAll():Array
全てのグループメンバーを格納した配列を返します。

■paint():void
全てのグループメンバーのpaint()メソッドを実行します。

■removeCollidable(g:Group):void
引数のグループとの衝突判定を解除します。
g:Group = 衝突判定を解除するグループ。

■removeComposite(c:Composite):void
引数の複合素材をグループメンバーから外します。
c:Composite = グループメンバーから外す複合素材。

 

init()やpaint()がやたらに色々なクラスで出てきますが、APEngineクラスを先頭にしてツリー構造を辿って実行されていくようです。イベントとリスナーを使っていけばツリーの中間にinit()やpaintはいらないような気もしまして、この構造はAS2に近いようにも思ったり思わなかったり…。

“APEのGroup” に コメントはありません

コメントをどうぞ