Rosso Laboratory

Rosso Laboratory

主に鉄道模型シミュレーター(VRM)などの仮想鉄道アプリを扱うブログです。またHDR写真の記事も書いています。

第14回 更に停車と再出発をさせよう

【第3章】編成を動かそう
第14回 更に停車と再出発をさせよう
今度は待避線に編成が進入したら停車と再出発をするように設定します。

【使用するVRMNX命令】色々な部品にある命令:SetEventAfter(時間, ユーザーID)
実行から指定時間後に発生する'after'イベントを設定します。時間の単位は秒です。戻り値はイベントIDを返します。

【やってみよう】「親子で学ぼう用レイアウト(13).vrmnx」を開き、センサーにスクリプトをこのように書こう。書くのが大変ならコピペしよう。完成品は「親子で学ぼう用レイアウト(14).vrmnx」です。

#OBJID=55
import vrmapi
def vrmevent_55(obj,ev,param):
    di = obj.GetDict()
    if ev == 'init':
        di['train'] = 0
(中略)
    elif ev == 'after':
        if param['eventUID'] == 113:
            di['train'].AutoSpeedCTRL(500,1.0)
(中略)
    elif ev == 'catch':
        di['train'] = obj.GetTrain()
        di['train'].AutoSpeedCTRL(700,0.0)
        obj.SetEventAfter(10,113)

【解説】このセンサーは停車と再出発のために設置されたセンサーです。'catch'イベントが発生したら、編成オブジェクトを取得し、その編成の速度を距離700mmで0にします。'catch'イベントが発生して10秒後に'after'イベントを実行し、停車していた編成の速度を距離500mmで最高速にします。なおイベント間を編成の変数が跨ぐため辞書型を使っています。

【実践】それでは「運転」を押してビューワーを起動させましょう。列車が待避線に入り停車と再出発をしたら成功です(^^)/
←戻る 目次 進む→
PVアクセスランキング にほんブログ村