初期化

初期化


active や sleep の引数にて初期化の指定ができますが、
初期化を行うと
座標をキャラ配置画面で指定した初期座標
(キャラクター編集画面で指定されている値)に戻し、
アニメーションを初期状態にします。

変数や dZoom 等の値には影響がありません。

※v2.6.6 だけかもしれませんが、
 初期化をしない場合は skip_slp で指定した、
 アクティブになった瞬間の飛び先を実行しなくなります。



画面上の座標と sleep

初期化指定は座標を初期化しますが、
画面上の座標が格納された変数(d*dwpos dCentd*)は例外で、
画面外で sleep を実行するようにした場合、
sleep や active で初期化するように指定しても、
active になった瞬間の座標は前回の座標と見なされてしまいます。

その為、active になった時に画面外と判断されてしまい、
sleep が実行されて active 状態になりません。

画面外で sleep する部分をアクティブになった瞬間1フレームだけ処理されなければ良いので、
skip_slp active になった瞬間の飛び先で、
画面外で sleep する部分を実行しないようにすれば対処可能です。

例えば、下のスクリプトのように、
0行の skip_slp の引数1 アクティブになった瞬間の飛び先の末尾に break を記述し、
引数2の飛び先にはそれ以降の行を実行するようにします。

0 skip_slp 1 5    
1 let l1  0.0 0
2 let l2  0.0 0
3 break

5 char_move        
7 if(>)more dXdwpos  320 13
8 if>>)more dYdwpos  240 13
9 if(<)less dXdwpos  -32 13
10 if(<)less dYdwpos  -32 13
11 break

13 sleep 0 1  
14 break        

ただし、上記の場合だとアクティブになった瞬間は char_move は実行されないので、
移動計算なしでスクリプトを実行している場合には、
アクティブになった瞬間は移動計算がされない事になるので注意してください。
(一応ですが3行目に char_move を実行する形で対処できます)



▲フレームが表示されない人はクリック