昨晩もななついろチャンネルさんにお邪魔しましたが沼ってました(^_^;)
信号機の変移で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ですが動きますね。まぁどうでもいいことですが(^_^;)