Darkside(リンクエラー修正しました)

2016年11月25日(金) 21:48

直進自動走行

 2回目の追突からスムーズにジャンプ台へ走行するには、デスウインド2のホームストレートを自動運転させた方式が使える。
 走行ラインの始点と終点を使って走行直線を定義し、現在座標の少し先に目標座標を設定する。目標座標は走行直線上とし、1フレームごとに少しずつ先へと設定し直す。
 これにより、少し進路がズレただけでも目標座標との距離が大きく変化し、正確なガイドが可能となる。

 F-ZERO はタイヤが無くてずっと空中に浮いているため、普通のレースゲームとは異なり空中でもハンドル操作が可能。ジャンプしたらハンドルが効かないというのはリッジレーサーやモータートゥーンで大変な障害になったが、F-ZERO
では何の影響もない。

 ここに至り、マシンが空中に浮いていることを認識できなければスクリプトが組めなくなった。
 ジャンプの開始時にカウントアップする変数は発見できたが、次のジャンプまで0に戻らない。着地しただけでは0に戻らない。これでは判定に使えない。
 常識的に考えて、高度を記憶している変数が存在するはずだ。だが、なかなか見つからない。つまり、想定が違う。通常走行時が0で、ジャンプするとプラスの値になり、コースアウト落下するとマイナスになる。そう考えてメモリーサーチしたが、引っ掛からない。

 そこで、ジャンプ上昇中は値が大きくなり、下降中は値が小さくなる・・・という絞込みを試す。こうして、高度が記憶されているメモリーアドレスを見つけ出した。要するに、最初から終わりまでプラスの高度である。考えてみれば空中に浮いているコースなのだから、初期状態で高度がプラスなのは不思議でも何でもない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4