VRMNXの時間系イベントが使いにくいなあと思っているアナタへ
実はそんな人いない説
はともかく。
まずはバージョン5以前の時間系イベントとVRMNXpyの時間系イベントの仕様の相違について,Afterイベントを例に見てみましょう。
バージョン5以前のイベントは,
//イベントを設定
SetEventAfter Target Method EventID Interval
// Target: 対象オブジェクト
// Method: 対象オブジェクトのメソッド
// EventID: イベントIDを受け取るグローバル変数(のポインタ)
// Interval: 時間間隔(ms)
BeginFunc Method
// Intervalミリ秒後に実行する制御の中身
EndFunc
という仕様でした。一方でVRMNXpyでは
#イベントを設定
evid = target.SetEventAfter(Interval)
# target: 対象オブジェクト
# interval: 時間間隔(s)
# (返り値) evid: イベントID
#指定時間経過すると対象オブジェクトのイベントハンドラが呼び出される
def vrmevent_xx(obj,ev,param):
if ev=='after':
# Afterイベントが起きたときの制御の中身
聡明な読者諸兄には自明なことかと思いますが,VRMNXpyのイベントは,どのイベントIDであってもとりあえず同じコードを走らせてしまうという仕様になっています。イベントハンドラの中に様々な処理をベタ書きしているといつかバグの温床となるでしょう。
最近のコメント