前回の説明はもう絶対読んだ人を眠くさせる自信があります!
他の人ならもうちょっとわかりやすく説明できたと思います。すいません・・
が、まぁ話を戻して
例のAIを起動させるAIはどうなってるのかというと↓これです
if tstu="停車駅":if (xej*xej+aa1*3)*496>y:za=1
まず、次が停車駅だというのは当たり前の条件ですよね。zaは通常0が代入されていて、1が代入されると停車AIが起動するって意味付けされています。
(xej*xej+aa1*3)*496>y
では、速度を2乗+補正して距離と比べてブレーキかけはじめのタイミングをうかがっています。
xejはただの速度の変数です。
aa1には「実際」の加速度が代入されています。
実際とは、P5からB8に急にマスコンを操作したときに実際の電車のようにブレーキが遅れて効いてくる、いわゆる急に加速度が変わらないように補正をかけたってことです。
そこらへんのリアリティは追求してみたかったんで・・
基本は速度の2乗に影響されてきます。ブレーキAIのところとかなり似ていると思いませんか?
大体、B5くらいのブレーキでうまく停車できる程度の距離になったら、ブレーキAI開始ってなっています。
当然、定数の*496を増減変化させればB4でもB6でも好きなようにできます。
というわけでブレーキの遅れも考慮に入れたAIブレーキ始動AIでした。
ところで書いてて途中で気づいたのですが、ブレーキに非常ブレーキが無いことに気づきました!
これはヤバイ!
完全にど忘れしていました!
そこらへんのリアリティは追及しようと思わなかったのか・・自分!?
よく考えたら、対抗電車とかも駅名も終点も、もう何も無いですね!
未だ発展途上過ぎるゲームですね・・・
さて今度は、速度制限とかカーブつきとか本格的に電車でGOに近づけたゲームを作ろうかな!?