USO800鉄道BLOG パワーユニットのスクリプトを書き直す。

 BLOGのTOPページ 

パワーユニットのスクリプトを書き直す。

その昔。オフコン時代。
プログラミングに近い仕事を一部していたので、
面倒くさいけど始めてしまえば没頭するんですよね、スクリプト。

取り掛かり時の気分次第で、自分でやってしまおうとする自分と、
「お~い、AKAGIく~ん。たのむわ~。」と投げやりの自分が交錯します。


-----------------------------------------


で、
昨晩の「進行方向の判定&処理」の部分が納得いかないのに、動作に問題が出ない件。

もう一度見直してようやく解決。

全体的の動作には問題なかったのですが、
編成の進行方向判定タイミングを細かく見てみたら、
変なタイミングで進行方向反転していました。


技量もないのに、「シンプルにまとめる・余計な事を書かない」を念頭に置いしまい、
逆に彷徨ってしまってるとは思いましたので、
素直に目の前にある課題をひとうひとつ処理していく、余計かもしれないけどひとまず書いてみる。
と言う具合で書き込みましたらできました。



Var evid1
Var evid2
Var evid3
Var direction
Var a
Var dial

//ビュワー起動時の電源状態(0:電源OFF 1:電源ON)
set a 0

//ビュワー起動時のダイヤル状態(2: STOP位置)
set dial 2

//------------------------------対象の編成の進行方向(正位:1 逆方向:-1)
set direction 1

//------------------------------キー操作(最後の文字が該当キー)
SetEventKey this , 電源ON・OFF, evid1, p
SetEventKey this , ダイヤル左回転 , evid2, 1
SetEventKey this , ダイヤル右回転 , evid3, 2


//-----------------------------------------------------------------------------------------
//以降は触るべからず-----------------------------------------------------------------------
//-----------------------------------------------------------------------------------------

//---------------------------------------------------電源オンオフ
BeginFunc 電源ON・OFF
xor a 1
SetHeadlight a
SetPantograph 0, a
ifeq a 1
call 電源オン 再生
else
call 電源オフ 再生
endif
EndFunc

//---------------------------------------------------ダイヤル左回転
BeginFunc ダイヤル左回転

//---モデルの表示処理
SetModelOption dial 0
sub dial 1
if< dial 1
set dial 1
endif
SetModelOption dial 1

//---------------------進行方向の処理
ifeq dial 1
ifeq direction -1
call de10 進行方向反転
set direction 1
endif
endif

//---------------------スピード調整
ifeq dial 1
call de10 スピードアップ
else
ifeq dial 2
call de10 スピードダウン
endif
endif
EndFunc

//---------------------------------------------------ダイヤル右回転
BeginFunc ダイヤル右回転
SetModelOption dial 0
add dial 1
if> dial 3
set dial 3
endif
SetModelOption dial 1

//---------------------進行方向の処理
ifeq dial 3
ifeq direction 1
call de10 進行方向反転
set direction -1
endif
endif

//---------------------スピード調整
ifeq dial 3
call de10 スピードアップ
else
ifeq dial 2
call de10 スピードダウン
endif
endif





<< パワーユニット テスト走行2。 | ホーム | 備忘録:パワーユニットに埋め込んだスクリプト。 >>

コメント

コメントの投稿

URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 

トラックバック


この記事にトラックバックする(FC2ブログユーザー)


 BLOGのトップまで戻ってしまう 



2017年度

カウントダウンタイマー

検索フォーム

カレンダー

06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

自作車両はコチラから↓↓

Google+写真

過去のTOP画像ギャラリー

YOUTUBE動画

YouTubeうそはっぴゃくチャンネル

カテゴリー

最近のコメント

リンク

RSSリンクの表示

twitter