FlxTypedGroup

API Reference > flixel.group > FlxTypedGroup

FlxTypedGroup<T:FlxBasic>

このクラスはFlxBasicをまとめて管理し、更新・レンダリングできるグループです。



スーパークラス

FlxBasic

フィールド

members:Array<T> : このグループにおけるすべてのメンバー配列

maxSize:Int : このグループにおける最大サイズ

length:Int = 0 : メンバーに実際にインスタンスが登録されている数


メソッド

new() :コンストラクタ

  • 引数
    • MaxSize?:Int = 0 : 登録可能な最大サイズ

add() : FlxBasicのインスタンスを登録

登録可能なサイズ以下であれば、FlxBasicを継承したクラスのインスタンスを登録します。サイズが足りない場合は何もしません

  • 引数
    • Object:T : FlxBasicのインスタンス
  • 戻り値
    • T : FlxBasic : 渡されたインスタンスをそのまま返します

recycle() : インスタンスをリサイクルします

  • 引数
    • ?ObjectClass?:Class<T> : リサイクルするクラスの型。インスタンスが足りない場合、このクラスでnewします
    • ?ContructorArgs?:Array<Dynamic> : インスタンスが足りない場合のnewの引数
    • Force:Bool = false : クラスの型の一致を強制するかどうか
    • Revive:Bool = true : リサイクル時のインスタンスの revive() を呼び出すかどうか
  • 戻り値 : T : 取得できたインスタンス。取得できない場合はnull

詳細説明

リサイクルは、newによるメモリ再割当てを行わずにインスタンスを再利用できるように設計されています。その挙動はmaxSizeが0であるか、0より大きいかによって動作が異なります。

分類条件挙動
maxSize > 0 「rotating-recycling」maxSizeぶんadd()済みの場合(length == maxSize)プール内に存在するインスタンスを返します。aliveフラグのチェクはしません
登録インスタンスがmaxSizeに達しない場合(length < maxSize)newしたインスタンスを返します
maxSize == 0 「grow-style-recycling」(FlxEmitterで使用)インスタンスが足りている場合exists==falseである最初のインスタンスを返します
足りない場合newしたインスタンスを返します

remove() : 指定のオブジェクトを削除します

  • 引数
    • Object:T : 削除するオブジェクト
    • Splice:Bool = false : メンバー配列のサイズを切り詰めるかどうか
  • 戻り値 : T : 削除したオブジェクト

replace() : 指定のオブジェクトを置き換えします

  • 引数
    • OldObject?:T : 削除するオブジェクト
    • NewObject?:T : 置き換える新しいオブジェクト
  • 戻り値 : T : 置き換えた新しいオブジェクト

setAll() : すべてのメンバーのフィールドに値を設定します

  • 引数
    • VariableName?:String : 変更するフィールド名
    • Value:Dynamic : 変更する値
    • Recurse:Bool : 再帰的に設定をおこなうかどうか
  • 戻り値 : Void

callAll() : すべてのメンバーのメソッドを呼び出します

  • 引数
    • FunctionName?:String : メソッド名
    • ?Args:Array<Dynamic> : メソッドに渡す引数
    • Recurse:Bool : 再帰的に呼び出しを行うかどうか
  • 戻り値 : Void

getFirstAvailable?() : 利用可能なインスタンス(exst==false)を取得します

このメソッドは一般的なリサイクル、例えば敵を出現させる、などで便利です。 ただし取得したインスタンスの revive() を呼び出して復活させることが必要です。

  • 引数
    • ?ObjectClass?:Class<T> : 取得するクラスの型
    • Force:Bool = false : 型の一致を強制するかどうか
  • 戻り値 : T : 取得できたインスタンス。取得できない場合はnull

getFirstDead?() : 死亡している(dead==true)インスタンスを取得します

このメソッドは、例えば敵を出現させる、などで便利です。 ただし取得したインスタンスの revive() を呼び出して復活させることが必要です。

  • 戻り値 : T : 取得できたインスタンス。取得できない場合はnull

getFirstExisting?() : 生存している(exist==true)インスタンスを取得します

このメソッドは全滅チェックやリーダーの取得などで有効です

  • 戻り値 : T : 取得できたインスタンス。取得できない場合はnull

getFirstAlive?() : 存在している(exist==true && alive==true)インスタンスを取得します

このメソッドは全滅チェックやリーダーの取得などで有効です

  • 戻り値 : T : 取得できたインスタンス。取得できない場合はnull

countLiving() : 生存しているメンバーの数を取得します

  • 戻り値:Int : 生存している(exist==true && alive==true)メンバーの数

forEach() : すべてのメンバーに対して指定のメソッドを呼び出します

  • 引数
    • Function:T->Void : 呼び出すメソッド
  • 戻り値: Void

forEachAlive?() : すべての存在している(exist==true && alive==true)メンバーに対して指定のメソッドを呼び出します

  • 引数
    • Function:T->Void : 呼び出すメソッド
  • 戻り値: Void

forEachExists?() : すべての生存している(exist==true)メンバーに対して指定のメソッドを呼び出します

  • 引数
    • Function:T->Void : 呼び出すメソッド
  • 戻り値: Void