subStopがcallされる時点で、グローバル変数VarPatameterには停車位置までの距離が入っています。これを使って、ピタリと列車を停止位置に止めましょう。
アップデーター4.0.4.0で追加されたAutoSpeedCtrl命令を使って・・・といきたいところですが、どうもボクが調べた限りにおいてはこの命令はまだ使い物にならないようなので、こちらで紹介している方法を使うことにします。I.MAGiCの中の人はAutoSpeedCtrlが0以外の電圧に反応しないのと、これで止めた後の動作不良についてデバッグするように。っつーか、テストしてから出荷したか?
【何か】センサーから受け取ったパラメーターがマイナスの値であった場合、メソッドmainでグローバル変数VarFlagに1が代入されるようになっていました。これは、駅停車後、再出発の前に方向転換すべきであること、つまり、折り返し運転をすることを意味しているのでした。
これを実現するためには、第一に“VarFlagが1であれば方向転換する”をスクリプトで書かなければなりません。第二に、列車が停車してから一定時間後にそれをしなければなりません。特に第二の点を実現するには、二種類のイベントをうまく組み合わせる必要があります。
方向転換の有無に関わらず、列車を再発車させることにしていました。これを実現するために、第一には前述の方向転換の有無の判断のタイミングで再発車のためのイベントを設定すること、第二には、再発車後の速度と加速所要時間を決定すること、が必要になります。
大まかな課題は以上の通りです。この他、いくつか細かい注意すべき点がありますが、これは次回以降、具体的な中身を解説しながら触れていくことにします。