イメージ 1

お盆休みでしょうか?私はまだ少し先ですが・・・

ビート君へのレクイエムとしてゲームを一つ作ってみました。
といっても競い合う要素はありません。あえて言うと転ばないように慎重に運転を楽しむ程度です。

ゲームはココから実行できます。
http://www6.plala.or.jp/TimeTripper/flash/f003.html

このゲームの基本計算は先日公開した「Flashで物理エンジン」の応用例題です。
非常に簡単なプログラムですが、ジャンプしたり、滑ったり転んだり、坂道ではバックもします。
ダンパー効果によりタイヤやボディが面白い動きをします。

作り方は至って簡単で、車を覆う四角形の箱を作ります。(質点の構造体)
この時、簡単に箱が潰れてしまわないよう対角にダンパーを追加します。
潰れにく構造体を作る場合はトラス構造(三角形を組み合わせる)にすれば丈夫な構造体が出来ます。
もちろん多少フニャフニャしますが・・・

車自体の加速は、ある質点に対して加速用のベクトルを加算するだけです。
(タイヤが接地した時のみ加算)
これだけで、他の質点はその構造を保持しようと働くことで全体が移動します。
また全体に重力加速を付加することで自然落下を行います。

地面はランダムにマップを作成します。
この時、傾きのベクトルも計算しておくと効率良く当り判定が出来ます。

地面との接地は簡単な計算式で求めることができます。(線分との交点を求める)
この時、タイヤにあたる質点とボディにあたる質点の摩擦係数を変えています。
これで転がる面とそうでない面を表現できます。(各質点の移動ベクトルに係数を積算する)

後は四角形の傾き、質点の座標からボディの回転を求め、タイヤをくっ付ければ完成です。
館山回転はX軸の移動量より計算しています。(手抜き)

ボディの傾き計算(簡単です)
q = Math.atan2((py[1]-py[0]),(px[1]-px[0]));

今回の拘りはボディとタイヤの画像で、これは以前に所有していたビートの写真から加工しています。
デカタイヤのビート君が元気に走ってる姿がカワイイ。

お粗末!