見出し画像

Rosso Laboratory

VRM5で信号機テスト

昨晩もななついろチャンネルさんにお邪魔しましたが沼ってました(^_^;)

信号機の変移でSetEventAfterを使った方はあっさり動いていましたが、SetEventTimerに切り替えて沼るという・・・。
8時間ぐらいやっていたようですが流石に眠くなったので途中退場いたしました。その後if文をネストさせてようやく動いたようです。

途中で私は剰余計算を使った分岐を提案したのですが採用されなかったので、こちらで勝手に試します(^_^;)

//SENSOR_000
Var evid0
SetEventSensor snsev evid0
SetSensorMode 0

BeginFunc snsev
  call "SENSOR_001" KEV
  call "SIGNAL001" color_red
EndFunc


//SENSOR_001
Var evid1
Var evid2
SetEventSensor snsev evid1
SetSensorMode 1
Var SIG_NO
set SIG_NO 0

BeginFunc snsev
  SetEventTimer this SIG_CNG evid2 4000
EndFunc

BeginFunc SIG_CNG
  mod SIG_NO 5
  ifeq SIG_NO 0
    call "SIGNAL001" color_red
  endif
  ifeq SIG_NO 1
    call "SIGNAL001" color_caution
  endif
  ifeq SIG_NO 2
    call "SIGNAL001" color_yellow
  endif
  ifeq SIG_NO 3
    call "SIGNAL001" color_down
  endif
  ifeq SIG_NO 4
    call "SIGNAL001" color_blue
    KillEvent evid2
    set SIG_NO 0
  endif
  add SIG_NO 1
EndFunc

BeginFunc KEV
  KillEvent evid2
  set SIG_NO 0
EndFunc


//SIGNAL001
SetSignal 6

BeginFunc color_red
 SetSignal 1
EndFunc
BeginFunc color_caution
 SetSignal 2
EndFunc
BeginFunc color_yellow
 SetSignal 3
EndFunc
BeginFunc color_down
 SetSignal 4
EndFunc
BeginFunc color_blue
 SetSignal 6
EndFunc

VRM5信号機テスト

VRM5ですが動きますね。まぁどうでもいいことですが(^_^;)

PVアクセスランキング にほんブログ村


ランキングに参加中。クリックして応援お願いします!

コメント一覧

rosso_laboratory
こんばんは、ななついろさん。再び差し出がましいことして申し訳ございません。ただ自分の考えが上手く動くか試したかっただけですので、お礼なんてとんでもないです(^_^;) ネストさせないならこの方法しかないと思っていましたので動いて良かったです。同時評価については私も同じ印象を持っており、上から順に動作しているように見える時と一気に処理されてる時の両方があるように見えます。イベントハンドラというものが根本的には理解できていないのでそう見えるのかもしれませんが、BASIC世代にとっては少々理解しがたい時がありますね。
nanatsuiro
zio 様

こんばんは☆
いつもお世話になっております。

VRM4の信号機制御で「SetEventTimer」を使う方法でスクリプトを組んだところ、if文とjumpコマンドが当方の意図したように動作してくれず、配信中にも関わらず途方に暮れておりました。

配信中に「mod」コマンドを使う方法をご提案くださり、お礼を申しあげます。「mod」コマンドも試してみたかったのですが、まずは自身で考えたスクリプトで、なんとか動作できないかと思い、配信中に「mod」コマンドを試す事が出来ませんでした。

「mod」コマンドを使用したサンプルもご制作くださり、重ねてお礼を申しあげます。

サンプルを拝見させて頂きましたところ、if文をネストしなくても動作するのですね。

VRM4配信では、if文のネスト化でなんとかなりましたが、ネスト化する前は、すべてのif文が同時に評価されているような印象で、メソッドの末端に設けたjumpコマンド先のラベル以下のデバッグ用メッセージも表示されていないような動作でした。これは、プログラムの仕様的にも意図した動作となっておらず、ここでもう完全にお手上げ状態でした。

次回のVRM配信では「mod」を使った方法も試させて頂きたく思います!
今後とも、どうぞよろしくお願い申しあげます。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

※ブログ作成者から承認されるまでコメントは反映されません。

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「VRMスクリプト」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事