Set Motion as Horizontal Wrap
水平移動、端到達で反対側端から出現
ASTER::ACTION::ObjectControl
::MOTION::Set Horizontal Wrap
Horizontal Wrap
Wrap は指定された領域を超えた時、指定された別の領域へワープして移動を継続する動作全般です。
水平移動 (Horizontal) の場合、領域は左と右座標にそれぞれ仮想壁 (ヴァーチャルウォール) という概念で範囲が区切られ、右か左の壁に当たったら反対方向の壁 (座標) から出現するというルーチンを繰り返します。
仮想壁との衝突 (実際には座標通過) を検出した場合には即時実行条件が起動し、専用コンディションとエクスプレッションから該当インスタンスの x
|y
座標や固定値などを得ることができます。これにより壁との衝突イベント自作が容易になりました。
移動量には浮動小数点数が利用可能になり、ベータ版では動作の最小単位が 1
フレームタイム = 1
ピクセルでしたが正式版ではより詳細な動作解像度を実現します。
パラメータ .1
オブジェクトを選択。
コントローラにはアクティブ ( スプライト ) のみ登録可能です。
アクティブ以外のオブジェクトタイプを指定した場合、エラーが表示され、以降の処理すべてを中止します。
パラメータ .2
登録用の名前を入力。日本語などマルチバイト文字列も利用可能ですが、実用上アルファベット小文字で短い名前を推奨します。
e.g.
"test"
入力が面倒な場合、あるいはアクティブオブジェクトに予め設定された名前をそのまま利用する場合、空文字列を送信します。
e.g.
""
パラメータ .3
4
つのパラメータを文字列として一括送信します。
e.g.
" 3.3 , false , -40 , 1000 "
3.3 = X 移動量 ( float )
false = 停止状態で開始 ( true | false )
-40 = 仮想壁 ( 左 ) 位置
1000 = 仮想壁 ( 右 ) 位置
注意点.1
予約変数としてオブジェクト・インスタンスの変数から
- Alt Variable[0] =
Spread ID
- Alt Variable[1] =
Motion ID
上記を利用します。
Alt Variable[0
]
0
で、以降 +1
ずつ値が増加します。任意の値で上書き変更しても良い、安全。Alt Variable[1
]
0
~ 4
までの数値、登録時のモーションタイプに応じた値が代入されます。データベース検索を速く済ますためのマジックナンバー。変更すると正常に検索できなくなります、危険。参考 : Reserved Variables
既知の問題点
コントローラ登録時、Action Loop に起因した他命令との実行順に関する問題
Known Issue :: Registration to the Object Motion Controller.
Jump to relative