見出し画像

Rosso Laboratory

ビューワーでの手動操作?

ビューワーでの手動操作として通常の電圧制御コントローラーではなく鉄道車両らしくノッチで運転する方法を調べていたのですが・・・なんとこのノッチ動作は鉄道車両のものではなく、トランジスタ制御コントローラーのものだということが分かりました(^_^;)

鉄道模型シミュレーターNXには[-3]~[+5]のノッチがあります(表示が[-3]ではなく[3]になってます)が、例えば最高速120.0km/hの485系で試すと

-3 制動大(ブレーキ音が鳴る)
-2 制動中
-1 制動小
 0 最高速0.0km/h 惰行のはずが制動にもなる
+1 最高速40.8km/h 力行のはずが制動にもなる
+2 最高速64.8km/h 力行のはずが制動にもなる
+3 最高速88.7km/h 力行のはずが制動にもなる
+4 最高速112.7km/h 力行のはずが制動にもなる
+5 最高速120.0km/h 力行

となり、120km/hで走っていてもノッチを+4にすると減速してしまうのです。鉄道車両であれば力行なので加速するのだから落ちないはずで、惰行なら少しづつ落ちるかな?という所のはずです。動画や記事で鉄道車両と同じノッチ操作が出来ると言ってしまったので、これは作らないといけないと思いました(^_^;) で作ったのがコチラ。

    if ev == 'init':
        obj.SetInputMode(1)
        obj.SetEventKeyDown('9')
        obj.SetEventKeyDown('8')
        obj.SetEventKeyDown('7')
        obj.SetEventKeyDown('6')
        obj.SetEventKeyDown('5')
        obj.SetEventKeyDown('4')
        obj.SetEventKeyDown('3')
        obj.SetEventKeyDown('2')
        obj.SetEventKeyDown('1')
        obj.SetEventKeyDown('Q')
        obj.SetEventKeyDown('W')
        obj.SetEventKeyDown('E')
        obj.SetEventKeyDown('R')
        obj.SetEventKeyDown('T')
        obj.SetEventKeyDown('Y')
(中略)
    elif ev == 'keydown':
        if param['keycode'] == '9':
            obj.SetNotchFactor(-3, 1.5)
            obj.SetCurrentNotch(-3)
        if param['keycode'] == '8':
            obj.SetNotchFactor(-2, 1.5)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '7':
            obj.SetNotchFactor(-2, 1.25)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '6':
            obj.SetNotchFactor(-2, 1.0)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '5':
            obj.SetNotchFactor(-2, 0.75)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '4':
            obj.SetNotchFactor(-2, 0.5)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '3':
            obj.SetNotchFactor(-2, 0.25)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '2':
            obj.SetNotchFactor(-2, 0.1)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == '1':
            obj.SetNotchFactor(-2, 0.05)
            obj.SetCurrentNotch(-2)
        if param['keycode'] == 'Q':
            obj.SetNotchFactor(0, 0.1)
            obj.SetCurrentNotch(0)
        if param['keycode'] == 'W':
            obj.SetNotchFactor(5, 0.5)
            obj.SetCurrentNotch(5)
        if param['keycode'] == 'E':
            obj.SetNotchFactor(5, 1.0)
            obj.SetCurrentNotch(5)
        if param['keycode'] == 'R':
            obj.SetNotchFactor(5, 2.0)
            obj.SetCurrentNotch(5)
        if param['keycode'] == 'T':
            obj.SetNotchFactor(5, 2.5)
            obj.SetCurrentNotch(5)
        if param['keycode'] == 'Y':
            obj.SetNotchFactor(5, 3.0)
            obj.SetCurrentNotch(5)

鉄道車両にはノッチが15段ぐらいあるらしく、[EB]/[B8]~[B1]/[N]/[P1]~[P5]とし、[EB]はブレーキ音がなる[-3]に加速度係数を掛け、[B8]~[B1]は[-2]に加速度係数を掛け、[N]は[0]に加速度係数を掛け、[P1]~[P5]は[+5]に加速度係数を掛けるようにしました。これで大体予定通りの動きになりました。

現状はたくさんのキーを使っていますが、これを2つのキーで上げ下げ出来るようにしたいですね。それと出来ればスプライトを使って表示もしたいところです。
PVアクセスランキング にほんブログ村


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

名前:
コメント:

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

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

 

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

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

最新の画像もっと見る

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

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