流れ玉



ゲームが動かない場合は、「Sun」より最新のJavaをダウンロード。

[P]キーで玉非表示
[2]キーで一時停止
[Z]で玉1つ、[SHIFT][Z]で玉を大量に配置
[X]でベクトル場配置
[T]長押しでリセット

操作説明

ゲームに書かれていない操作だけ
左クリックドラッグ
マウス移動

[Q]
玉・ベクトル場つかみ移動
方向場の向き

画質切り替え

詳細

玉の流れ方を見るだけの観賞物
玉をいっぱいおいて、場を10個くらい配置して眺めて下さい。

上の赤いバーは、当たり判定処理の重さを表したものです。
ゲージいっぱいで、処理に16ミリ秒費やしていることを表します。

以下、分かりづらい要素だけまとめます

■ベクトル場の種類について

発散場(1/r^2)・・・距離の2乗に反比例して発散する力を与える
・・・・・・・・・・ベクトル場の強さがマイナスなら吸収
回転場(1/r^2)・・・距離の2乗に反比例した回転の力
発散場・回転場(一定)・・・距離に寄らない一定の力
発散場(r)・・・距離に比例して発散する力
方向場(1/r^2)・・・距離の2乗に反比例して一定の方向に加速する力
・・・・・・・・・・マウスから描かれた線の向きに加速させる
方向場(一定)・・・一定の範囲内に一様に一定方向に加速する力


■当たり判定タイプについて
分割・・・四角形の領域で分けて、自分と重なる領域の物体に対して当たり判定
軸ソート・・・X軸でソートして、自分近傍から当たる可能性のある範囲にある物体までを探索して当たり判定
・・・・・・・Y軸も見て、判定回数が少なくなりそうな方で判定する
総当たり・・・全部に対して当たり判定


ボール質量・・・ボールの衝突では、軽いほうが吹き飛ぶ

影響先=加速度・・・場による加速がボールの重さによらない
影響先=力・・・ボールが重いほど加速しづらくなる

速度抵抗・・・0より大きいと、少しずつ減速してゆく
緊急ブレーキ・・・すべての玉の速度をただちに半減させる

デバッグ表示・・・当たり判定処理の様子を表示
・・・・・・・・・黄色が玉、線がつながり方

お世話になった方々

サクラエディタ:テキスト打ち込みの基本ソフト。

その他・余談

インターン先で、研究やってて、機械学習という2時間くらいかかる作業が続いたので、
その合間に作成してみた作品。
主に見たかったのは、当たり判定の速度の違いです。
やはり分割が一番速度効率が良さそうです。

ちなみに衝突のプログラムは割と細かく調整されています
フレームを巻き戻してギリギリ当たるところを探してたり、
重なった玉の突き放し方もクッションを入れて、なるべく暴れずに重なりを解消していたりします。


0xな場所 PV:
inserted by FC2 system