問題タブ [game-physics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2658 参照

javascript - Javascript ボールの衝突

単純な物理演算を使用して単純な JavaScript ゲームを作成しようとしています。2 つのボールがいつ衝突するかは判断できますが、衝突の処理に問題があります。

これに関する有用なチュートリアルを知っている人はいますか? 私は数日間インターネットを検索してきましたが、何も見つからないようです。

0 投票する
4 に答える
1305 参照

c# - 2Dゲーム物理ベクトルの問題

私は、ボール[X、Y]の座標が定期的にインクリメントされるC#の簡単なプログラムに取り組んできました。

衝突検出方法を実装することができましたが、同じ直線経路に沿ってボールを跳ね返らせる角度でボールを反射する方法を決定しようとしています。

ソリューション 三角法

0 投票する
2 に答える
1774 参照

javascript - jQuery - コーディネーションシステムでフィギュアを動かす方法

私がこのコードを持っているとしましょう:

Figure div がある場所は、Figure の写真と言えます。キーボードのキーを上下左右に動かして gameFrame 内の図を移動するために jQuery を使用するにはどうすればよいですか?

0 投票する
1 に答える
380 参照

game-physics - BulletPhysics の弾丸

弾丸物理学で弾丸をシミュレートする最良の方法は何ですか?

小さなカプセル体?ある種のレイトレーシング?他の何か?

可能であれば、いくつかのサンプルコードがいいでしょう。

0 投票する
2 に答える
3168 参照

algorithm - 円から円へのセグメントの衝突

円と円セグメント間の衝突を検出するための堅実な解決策を見つけるのに苦労しています。ゲームの敵の視野円錐を想像してください。円は対象のオブジェクトを表しています。

一番下の図は、考えられるいくつかのケースを考えて描いたものですが、他にもあるはずです。

極端なケースをすばやく除外する方法を理解しており、円全体と衝突しないターゲットを破棄し、メイン サークルの中心がターゲット サークル内にある場合は自動的に true になります (図の E)。

残りのケースをチェックする良い方法を見つけるのに苦労しています。円の中心とセグメントの外側の線の端点との間の距離を比較してみました。また、メインの円の中心からターゲットの円の中心の角度を計算し、それがセグメント内にあるかどうかを判断しようとしました、しかし、どちらの方法でもすべてのケースをキャッチできるようには見えません。

具体的には、ターゲット円が中心に近いがそれに触れていない場合 (以下の E と B の間のどこか)、またはセグメントがターゲット円よりも狭い場合 (中心がセグメント内にあるが両方のエッジ)、ファンキーになるようです。その外にあります)。

これを行うための信頼できる方法はありますか?

追加情報:セグメントは、位置 P、向き O (大きさは円の半径)、およびビュー サイズ S によって記述されます。

これまでで最も成功した試みは、ベクトル ca1 と ca2 の角度を決定し、それらのいずれかがベクトル a1 と a2 の角度の間にあるかどうかを確認することでした。これは、上記で説明したように一部のケースでは機能しますが、ターゲット円がセグメントよりも大きい状況では機能しません。

編集2 以下からの最良の提案を実装した後、まだ誤検知があり、それをどのように排除するのが最善かわかりません. 下のピンク色の図を見てください。右下の円は、境界が半分のスペースとメインの円の両方に重なっているため、セグメントと衝突していると報告しています。

衝突タイプ 現在のソリューション

偽陽性 エッジケース


最終編集

別のエッジ ケース (4 番目の画像) を発見した後、以下の上位 2 つの回答を組み合わせて、すべてのベースをカバーしているように見えるアプローチに落ち着きました。フォローしてくださる方のために、ここで説明しておきます。

最初に、円から円への迅速なテストに失敗したものをすべて除外します。

次に、円とセグメントの 2 つの外側の線の間の衝突をテストします。どちらかに触れた場合、true を返します。

最後に、円の中心と 2 つの外側の線を使用して、ポイントから半空間へのテストをいくつか実行します (Gareth が以下で説明するように)。それらの両方を通過する場合、それ以外の場合は false を返します。

0 投票する
1 に答える
1085 参照

physics - インパルスベースの物理学-重いオブジェクトを軽いオブジェクトに積み重ねる

インパルスベースの物理エンジンを開発していますが、質量差の大きいオブジェクトに問題があります。

各フレームで、エンジンは衝突を処理するためにインパルスを適用します。インパルスは、衝突するオブジェクトの各ペア間で、何度も繰り返されます。これは、オブジェクトがほぼ同じ質量である場合にうまく機能します。

しかし、問題は、重い物体を軽い物体の上に置くと、重い物体が軽い物体を地面に押し込むことです。

問題の原因は、2つのオブジェクト間に適用されるインパルスが小さすぎるため、何度も繰り返しても、重いオブジェクトの重力に対抗するのに十分ではないことです。

必要な衝動を正確に計算する方法はあると思いますが、複雑すぎるのではないかと心配しています。そのため、ほとんどの場合、この問題に対処するためのいくつかのトリックを探していますが、エンジンの動作方法は変更していません。

アイデアをありがとう!

0 投票する
1 に答える
1278 参照

iphone - Slingshot を使用して異なる角度でオブジェクトを移動する方法は?

私は iPhone アプリケーション開発と Xcode の初心者で、パチンコ効果のある Box2D を使用して小さなゲームを開発しています。スリング ショットを使用するときに、体をそれぞれの角度に動かすのに助けが必要です。を使用してスリングショットを描きccDrawLine、その上に体を置きます。

私のプロジェクトでは、スリング ショットを使用すると、オブジェクトがランダムにさまざまな方向に移動します。これを修正する方法を知っている人はいますか?

私のコード:

パチンコを描く:

オブジェクトをスリングに配置します。

角度を手動で作成して追加しようとしています。

角度の作成:

0 投票する
1 に答える
2888 参照

c++ - Box2D (C++) 重力井戸

現在、私は自分のゲームで Box2D 物理エンジンを使用しています。すべての物体が任意の 1 点に引き付けられるような重力井戸を作成できるかどうか疑問に思っていました。これを行う特定の方法はありますか、または各ボディにある種のカスタムフォースを適用する必要がありますか? (私は静的な超高密度ボディを作成しようとしましたが、Box2D はニュートンの万有引力の法則をボディ ツー ボディに適用しません)

また、反重​​力をうまく作る方法はありますか?任意の点を中心とした密度の高い球体を作成し、浮力を使用してこれを実現できますか?

0 投票する
1 に答える
896 参照

objective-c - Objective-C ccKeyDown プレーヤーの動き

私は現在、Objective-C で Cocos2D Mac ゲームに取り組んでいます。

ムーブメントは動作していますが、もう1つ質問があります..

このコードを使用してプレーヤーを移動します。これはハエなので、あらゆる方向に自由に移動する必要があります。

キーボード イベント:

ゲームタイム ループ:

私の問題は、プレーヤーが左に移動しているときに上キーを同時に追加できないため、プレーヤーが左と上に移動することです。これを達成するための最良の方法は何ですか?

0 投票する
3 に答える
2744 参照

java - 発射体の動きに風速を実装しますか?

ユーザーが発射体の角度と速度を定義するという点で、Scorched Earth または Pocket Tanks の流れでJavaでタンク ゲームを作成しようとしています。発射体システムに風速を実装する方法をインターネットで調べました。発射体の動きに風速を追加するにはどうすればよいですか?

私のプログラムは、速度の X 加速度と Y 加速度を計算するだけでなく、到達した最大高さ、最終点に到達するまでにかかった合計時間、および発射された発射体の角度を考慮に入れます。