カテゴリ:ATSプラグイン作成講座
64行目、Elapseを見てみます。
オフィシャルサイトの解説には1フレームごとに呼び出される関数と書いてあります。 この関数は画面が1回描画されるたびに呼び出されます。 40fpsなら1秒間に40回、5fpsなら1秒間に5回呼び出されます。 この関数は重要で、常に状態をチェックする必要がある処理はここに書きます。 引数で渡ってくるものは、速度、ブレーキ圧力などの車両の現在の状態(ATS_VEHICLESTATE)です。 それと、panel、soundです。 panelは運転台設定ファイルPanel2.cfgで使うats0~ats255の値を設定します。 soundはサウンド設定ファイルSound.cfgで使う0~255の値を設定します。 (Panel、Soundに関しては次回詳しく解説します。) 戻り値はATS_HANDLESです。BVEへ渡すハンドル(マスコン、ブレーキ等)の状態を設定します。 ここで重要なのは、ATSプラグインで制御できる車両の状態は マスコン、ブレーキ、レバーサ、定速のみという点です。 速度やブレーキ圧力などはATSプラグインで制御できません。 このサンプルファイルの場合、g_outputにそれぞれのハンドルの状態を設定してやることで、 車両のマスコンやブレーキを制御しています。 ソースをみてみます。75行目、 if(g_atssn.AtsBrake || g_atsp.EmergencyBrake) { g_output.Brake = g_emgBrake; } else if(g_atsp.ServiceBrake && g_brakeNotch != g_emgBrake) { g_output.Brake = g_svcBrake; } else { g_output.Brake = g_brakeNotch; } とあります。この部分の動作は、 ATS-SN作動またはATS-P非常ブレーキの場合、BVEに返すブレーキの値は非常ノッチ。 ATS-P常用ブレーキかつユーザ操作のブレーキノッチが非常ノッチでない場合、BVEに返すブレーキの値は常用最大。 それ以外の場合、BVEに返すブレーキの値はユーザ操作のブレーキノッチ。 となります。 このように、ブレーキは保安装置の状態により、非常ノッチを返すかユーザ操作のノッチを返すか分けています。 87行目、レバーサの設定です。 パイロットランプが点灯の場合、ユーザ操作のレバーサを返し、それ以外(消灯)の場合、レバーサは0(中立)を返しています。 95行目、マスコンはユーザ操作のノッチをそのまま返しています。 96行目、定速制御です。これは常にATS_CONSTANTSPEED_CONTINUEで良いでしょう。 115行目、return g_outputでBVEへハンドルの値を返しましょう。 まめ知識 ATSプラグイン側でg_output.Reverser = 1(前進)に設定しても、 ユーザ操作のレバーサが中立(BVEの左下の表示が「切」)になっている場合、 列車は加速できません。 << 08 関数の解説(第3回) 10 Panelの設定 >> お気に入りの記事を「いいね!」で応援しよう
Last updated
January 29, 2009 09:17:58 PM
コメント(0) | コメントを書く
[ATSプラグイン作成講座] カテゴリの最新記事
|
|