[前へ]
[目次へ]
[次へ]
ParticleEmitter_Method (script/fgs/system_multipart.fges)
このクラスはエミッターメソッドを稼働するためのパーティクルエミッタークラスです。
エミッターメソッドは独立したスレッドで実行され、
@@HALT_PARTICLE
中断識別子によって中断できるように記述する必要があります。
●継承/注入
このクラスは継承/注入をしていません。
●インターフェイスとインターフェイスメソッド
implements
IParticleEmitter
Init
IsReady
Update
Halt
●クラスメソッド
このクラスはクラスメソッドを持っていません。
●クラスメンバメソッド
名前
概要
Halt
エミッターメソッドの処理を中止します
FarExec
エミッターメソッドを起動します(サブスレッド側処理)
FarExecBind
エミッターメソッドを起動します(サブスレッド側処理)
FarExecBindC
エミッターメソッドを起動します(サブスレッド側処理)
Exec
エミッターメソッドを起動します
ExecBind
エミッターメソッドを起動します
ExecBindC
エミッターメソッドを起動します
●クラス共有変数
このクラスはクラス共有変数を持っていません。
●インスタンス変数
名前
概要
met_thread
エミッターメソッド用スレッドハンドル
isready
エミッターメソッド準備完了フラグ
host
エミッターを管理しているパーティクルホスト
memhost
エミッター寿命オブジェクト用メモリ管理オブジェクト
ParticleEmitter_Method::IParticleEmitter@@Init
void IParticleEmitter@@Init(editable
IParticleHost
host)
エミッターを初期化します。
このメソッドから戻った後は
Halt
が呼ばれる可能性があります。
このメソッド中に処理中止を行えるようにしてください。
editable
IParticleHost
host
:このオブジェクトを管理するホストオブジェクト
先頭へ
ParticleEmitter_Method::IParticleEmitter@@IsReady
Bool
IParticleEmitter@@IsReady(editable
IParticleHost
host)const
エミッターを開始できる状態になっているか判定します。
このメソッドが真を返すまではエミッターは更新されません。
ただし、開始準備が出来ていなくても
Halt
は呼ばれる可能性があります。
戻り値:エミッターを開始できる状態になっていれば真を返します。
editable
IParticleHost
host
:このオブジェクトを管理するホストオブジェクト
先頭へ
ParticleEmitter_Method::IParticleEmitter@@Update
Bool
IParticleEmitter@@Update(editable
IParticleHost
host)
エミッターの状態を1フレーム分更新します。
エミッターがパーティクルを生成する場合は
host
に対して生成してください。
このメソッドが偽を返すとエミッター処理が完了したとみなされ、
エミッターオブジェクトが削除されます。
この時、
Halt
は呼び出されません。
戻り値:エミッターの処理を継続する場合は真を返します。
editable
IParticleHost
host
:このオブジェクトを管理するホストオブジェクト
先頭へ
ParticleEmitter_Method::IParticleEmitter@@Halt
void IParticleEmitter@@Halt(editable
IParticleHost
host)
エミッターの処理を中止することを通知します。
このメソッドが呼び出された後、エミッターオブジェクトは削除されます。
このメソッドはエミッターの初期化以降、完了までの間に
パーティクルホスト側の都合でエミッター処理を中止する場合に呼び出されます。
エミッターの開始前でも呼び出されることに注意してください。
editable
IParticleHost
host
:このオブジェクトを管理するホストオブジェクト
先頭へ
ParticleEmitter_Method::Halt
internal void Halt()
エミッターの処理を中止することを通知します。
このメソッドが呼び出された時にエミッターメソッドが実行中だった場合、
エミッターメソッドに対する中断要求が送出されます。
このメソッドはエミッターメソッドが中断または終了するまで処理を返しません。
先頭へ
ParticleEmitter_Method::FarExec
internal void FarExec(
INativeMethod
emitter_method,
Arguments
emitter_arg)
エミッターメソッドを起動するためのサブスレッド側エントリーメソッド。
このメソッドは
@@HALT_PARTICLE
中断識別子を受け付けるように宣言した後、
エミッターメソッドを呼び出します。
INativeMethod
emitter_method
:起動するエミッターメソッド
Arguments
emitter_arg
:エミッターメソッドの引数リスト
先頭へ
ParticleEmitter_Method::FarExecBind
internal void FarExecBind(editable
Any
hostobj,
FGESMethod
emitter_method,
Arguments
emitter_arg)
エミッターメソッドを起動するためのサブスレッド側エントリーメソッド。
このメソッドは
@@HALT_PARTICLE
中断識別子を受け付けるように宣言した後、
エミッターメソッドを呼び出します。
editable
Any
hostobj
:エミッターメソッドのホストオブジェクト
FGESMethod
emitter_method
:起動するエミッターメソッド
Arguments
emitter_arg
:エミッターメソッドの引数リスト
先頭へ
ParticleEmitter_Method::FarExecBindC
internal void FarExecBindC(
Any
hostobj,
FGESMethod
emitter_method,
Arguments
emitter_arg)
エミッターメソッドを起動するためのサブスレッド側エントリーメソッド。
このメソッドは
@@HALT_PARTICLE
中断識別子を受け付けるように宣言した後、
エミッターメソッドを呼び出します。
Any
hostobj
:エミッターメソッドのホストオブジェクト
FGESMethod
emitter_method
:起動するエミッターメソッド
Arguments
emitter_arg
:エミッターメソッドの引数リスト
先頭へ
ParticleEmitter_Method::Exec
public
Bool
Exec(
INativeMethod
emitter_method,...)
エミッターメソッドを起動します。
このメソッドは他のエミッターメソッド起動メソッドを含め、エミッターオブジェクト1つにつき1回しか呼び出せません。
エミッターメソッドは専用のスレッドで起動され、このオブジェクトが更新される度に実行されます。
この時、エミッターメソッドが
pause
する度に1フレーム分の処理をしたとみなされます。
エミッターメソッドが
isready
引数に真を設定するまでは同期処理されます。
エミッターメソッド側で引数をコピーする必要がある場合は同期処理中に行ってください。
同期処理が終了した後、エミッターメソッドはスレッド切り替えが発生するまではそのまま実行されます。
このメソッドは同期処理終了後、エミッターメソッドの完了を待たずに処理を返します。
また、エミッターメソッドが終了するとエミッターも完了します。
エミッターメソッドは戻り値がなく、2つ以上の引数を取る必要があります。
エミッターメソッドの第1引数、第2引数は以下で固定で、第3引数以降は自由です。
第1引数:
editable
Bool
isready
:[出力]エミッターの準備完了フラグ。
このフラグが真に設定されるまでは同期実行され、エミッターは開始されません。
第2引数:
editable
IParticleHost
host
:[入出力]エミッターが所属するパーティクルホスト。
エミッターが生成するパーティクルはこのオブジェクト管理で生成してください。
第3引数以降:このメソッドの第2引数以降がそのまま渡されます。
戻り値:エミッターメソッドの起動に成功した場合は真を返します。
INativeMethod
emitter_method
:起動するエミッターメソッド。
(可変長引数) :エミッターメソッドの引数としてそのまま渡されます。
先頭へ
ParticleEmitter_Method::ExecBind
public
Bool
ExecBind(editable
Any
hostobj,
FGESMethod
emitter_method,...)
エミッターメソッドを起動します。
このメソッドは他のエミッターメソッド起動メソッドを含め、エミッターオブジェクト1つにつき1回しか呼び出せません。
エミッターメソッドは専用のスレッドで起動され、このオブジェクトが更新される度に実行されます。
この時、エミッターメソッドが
pause
する度に1フレーム分の処理をしたとみなされます。
エミッターメソッドが
isready
引数に真を設定するまでは同期処理されます。
エミッターメソッド側で引数をコピーする必要がある場合は同期処理中に行ってください。
同期処理が終了した後、エミッターメソッドはスレッド切り替えが発生するまではそのまま実行されます。
このメソッドは同期処理終了後、エミッターメソッドの完了を待たずに処理を返します。
また、エミッターメソッドが終了するとエミッターも完了します。
エミッターメソッドは戻り値がなく、2つ以上の引数を取る必要があります。
エミッターメソッドの第1引数、第2引数は以下で固定で、第3引数以降は自由です。
第1引数:
editable
Bool
isready
:[出力]エミッターの準備完了フラグ。
このフラグが真に設定されるまでは同期実行され、エミッターは開始されません。
第2引数:
editable
IParticleHost
host
:[入出力]エミッターが所属するパーティクルホスト。
エミッターが生成するパーティクルはこのオブジェクト管理で生成してください。
第3引数以降:このメソッドの第3引数以降がそのまま渡されます。
戻り値:エミッターメソッドの起動に成功した場合は真を返します。
editable
Any
hostobj
:エミッターメソッドのホストオブジェクト。
FGESMethod
emitter_method
:起動するエミッターメソッド。
(可変長引数) :エミッターメソッドの引数としてそのまま渡されます。
先頭へ
ParticleEmitter_Method::ExecBindC
public
Bool
ExecBindC(
Any
hostobj,
FGESMethod
emitter_method,...)
エミッターメソッドを起動します。
このメソッドは他のエミッターメソッド起動メソッドを含め、エミッターオブジェクト1つにつき1回しか呼び出せません。
エミッターメソッドは専用のスレッドで起動され、このオブジェクトが更新される度に実行されます。
この時、エミッターメソッドが
pause
する度に1フレーム分の処理をしたとみなされます。
エミッターメソッドが
isready
引数に真を設定するまでは同期処理されます。
エミッターメソッド側で引数をコピーする必要がある場合は同期処理中に行ってください。
同期処理が終了した後、エミッターメソッドはスレッド切り替えが発生するまではそのまま実行されます。
このメソッドは同期処理終了後、エミッターメソッドの完了を待たずに処理を返します。
また、エミッターメソッドが終了するとエミッターも完了します。
エミッターメソッドは戻り値がなく、2つ以上の引数を取る必要があります。
エミッターメソッドの第1引数、第2引数は以下で固定で、第3引数以降は自由です。
第1引数:
editable
Bool
isready
:[出力]エミッターの準備完了フラグ。
このフラグが真に設定されるまでは同期実行され、エミッターは開始されません。
第2引数:
editable
IParticleHost
host
:[入出力]エミッターが所属するパーティクルホスト。
エミッターが生成するパーティクルはこのオブジェクト管理で生成してください。
第3引数以降:このメソッドの第3引数以降がそのまま渡されます。
戻り値:エミッターメソッドの起動に成功した場合は真を返します。
Any
hostobj
:エミッターメソッドのホストオブジェクト。
FGESMethod
emitter_method
:起動するエミッターメソッド。
(可変長引数) :エミッターメソッドの引数としてそのまま渡されます。
先頭へ
ParticleEmitter_Method::met_thread
readable
HThread
met_thread
エミッターメソッドを駆動するスレッドのハンドル。
先頭へ
ParticleEmitter_Method::isready
readable
Bool
isready
エミッターメソッドが起動し、準備完了すると真になるフラグ。
先頭へ
ParticleEmitter_Method::host
readable
Pointer
<
IParticleHost
> host
このエミッターを管理しているパーティクルホスト。
先頭へ
ParticleEmitter_Method::memhost
public
MemoryHost
memhost
エミッター寿命オブジェクト用のメモリ管理オブジェクト。
先頭へ
[前へ]
[目次へ]
[次へ]
最終更新 2023/02/01