Event Detect: Retrieve the current angle for orbital motion during sleep.
数値型で値を取得
ASTER::EXPRESSION::ObjectControl::Event Detect: Get the Current Angle for Orbital motion during sleep
スリープ中の周回動作から現在の角度情報を得る。
Orbital Motion Template専用命令。
ASTER 内部でループ処理の実行中にイベントが発生した時、CF25 の即時実行条件 ( 割り込み処理 ) でイベント発生の正確なタイミングを CF25 に通知しています。この仕組みを ASTER では「 Event Detect 」と呼んでいます。
Event Detect で取得できる情報は有効期限が極めて短く揮発性の高い、高頻度で更新されます。
29_oCtrl_Orbital_TgtXy+Sleep_Evd_GetAG
Sleep 中のインスタンスから角度情報を得るイベントの作成例として
スリープ中、かつ ( スリープカウンタの値 mod 6 ) = 0 の時、という条件で Bullet が発射されるイベントです。
イベント行 13 で条件判定処理を行い、実際の発射処理をイベント行 14 で行っています。発射する弾の角度は以下計算で算出されます。
ExNumEvdAG( "ASTER", 1 ) + ( 5 + ( -2 * LoopIndex("new") ) )Parameter
引数に
0か1を設定したパラメータを送信し、取得する角度情報の単位を選択します。
Argument= 0 は角度を 0 ~ 359 の整数で取得します。
ExNumEvdAG( "ASTER", 0 )Argument= 1 は角度を Clickteam の Animation Direction 仕様に基づいた値 0 ~ 31 に変換した整数で得ます。
ExNumEvdAG( "ASTER", 1 )Orbital Motion の角度情報について
周回の中心座標から計測したインスタンスの角度情報は、Sleep for Orbital Motion Template のみ Event Detection で取得できます。
他動作テンプレートはインスタンスが角度情報を持たないため、Sleep 中であっても本命令は利用できません。
Event Detect の処理負荷について
Event Detect は CF2.5 の標準機能である高速ループの仕組みに近く、インスタンスの数に応じて処理コストは高くなります。
短い間隔でスリープ動作のオンオフ切り替えをすると、これも処理負荷が高まります。

