問題タブ [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.
physics - 物理エンジン - 衝突後のオブジェクトの速度の決定
物理エンジンの情報を調査しているときに、衝突後のオブジェクトの速度 (または衝突の「インパルス」の大きさ) を決定する際の問題に遭遇しました。多くのソースが反発係数を使用すると述べていますが、ウィキペディアによると、これは衝突における両方のオブジェクトのプロパティに依存します。残念ながら、CoR を決定するには、オブジェクトの最終速度を知る必要があります。
game-physics - 力ベースのグラフ: 3D エッジ衝突
エッジが衝突する移動する 3D の力ベースのグラフを想像してください。すべてのオブジェクトが現実の世界と同じように動作するように、エッジ (ストリング、ロープ) の衝突を計算するための特定の物理エンジンを作成するのはどれほど簡単ですか? 弦は曲がり、ノードは互いに反発する必要があります。「本物に見える」という視覚認識を超える精度は問題ではなく、ゲームです。
編集:おそらく、エッジをマルチセグメント文字列として近似することが、私が考えることができる唯一のオプションであることを忘れていました。
そして、そうです、そのような物理学を数百または数千のエッジにスケーリングすることは可能でしょうか?
wpf - WPFの物理エンジン
Silverlightではなく、WPF用の2D物理エンジンを探しています。物理エンジンは、特定のコントロールの動作をブレンドで指定できるように、ブレンド可能である必要があります。いずれかがあります?
.net - Visual Studio の最適化の問題、または表示できないロジックのバグですか?
私は開発中の小さな物理玩具アプリケーションを持っています。パーティクルが互いに押しのけず、引き寄せるだけであることを除いて、正常に動作します。コマンドごとにサブを通過するサブをデバッグし、値「H」が変更されないことに気付きました。この値を変更するには、手動で「h = 1」に設定するしかありません。「H」値で計算をやり直すと、x1、y1、x2、y2 がすべて異なっていても、以前の値にリセットされます。つまり、H は異なるはずです。
どこかで数学的な間違いを犯したのは私だと思いますが、どこにあるのかわかりません。自分の作品を見渡す新鮮な目が必要です。何か見つけたら教えてください。
ありがとう。
c# - Xnaが2Dスプライトに重力を追加
私は最初のxna2dゲームで重力をシミュレートしようとしています。私は以下を持っています
そのため、経過したAirTime <maxAirTimeの間にスプライトを一定量上に移動しようとしていますが、コードがこの時間のセグメント中にスプライトを1回だけ上に移動し、複数回移動しないように見える問題があります。これが私の「player.cs」クラスのコード、またはクラスのupdateメソッドです。
どんな助けでも大歓迎です、どうぞそしてありがとう!
objective-c - 2D マップでのゲーム タイルの移動
2D 正方グリッド システムで移動を行う最良の方法は何ですか? これは機能しますが、間違っている/醜いようです(以下を参照)。
たとえば、U は移動したいユニットで、O は別のユニットや山のような通行できないオブジェクトです。U が 3 タイル移動できる場合、可動領域 (M) は次のようになります。
これが私のコードです:
c - TrigMath、2 つの質量、剛体ロッドの計算速度
他のみんなと同じように、ブラッシュアップのためだけに Thrust のクローンを作成しています。船がポッドを持ち上げる段階まで来ました。
基本的に、剛性のある質量のないロッドに接続された 2 つの質量 (球の中心のみを考慮) があります。L は決して変化せず、壊れません。
この場合、ship(ma) の質量は 1.0、pod(mb) の質量は 2.0 です。新しい位置を計算するために必要な計算は何ですか? ship(ma) に推力を適用するとき、それを pod(mb) に適用するにはどうすればよいですか? (そして思い通りに振り回す) 船自体をやることは単純明快で、いつもの velx-=sin(angle)*thrust, vely+=cos(angle)*thrust でした。posx+=velx. など。これを行う方法は以前は知っていましたが、学校は何年も前のことです。
scripting - Unity 3D 物理学
Unity 3d の物理演算に問題があります。ボールが壁に当たって跳ね返り、別の方向に進むことを望んでいます。ボールが壁に当たると、ボールはまっすぐ跳ね返ります。壁に当たる方向と直角になるように向きを変えてみましたが、向きは変わりません。このため、ボールは壁にぶつかり続け、まっすぐ跳ね返ります。
次に、ボールが壁をすり抜けることがあります。壁にはボックス コライダーがあり、ボールには球コライダーがあります。それらはすべて、衝突検出モードとして連続ダイナミックを持っています。
data-structures - 2D 衝突検出のための四分木
2D 衝突検出に四分木を使用しようとしていますが、実装方法に少し困惑しています。まず、4 つのサブツリー (各象限を表す 1 つ) と、1 つのサブツリーに収まらないオブジェクトのコレクションを含む 4 つ木があります。
ツリー内のオブジェクトの衝突をチェックするときは、次のようにします ( 2D 衝突検出のための QuadTree のおかげです)。
- 現在のノード内のオブジェクトとの衝突についてオブジェクトをチェックします。
- スペースがオブジェクトと重なっているサブツリーについては、再帰します。
四分木ツリー内のすべての衝突を見つけるには:
- 現在のノード内の各オブジェクトを、現在のノード内の他の各オブジェクトに対してチェックします。
- 各サブツリーに対して現在のノードの各オブジェクトをチェックします。
四分木に挿入するには:
- オブジェクトが複数のサブツリーに収まる場合は、現在のノードに追加して戻ります。
- それ以外の場合は、それを含むサブツリーに再帰します。
四分木を更新するには:
- 各サブツリーに再帰します。
- 現在のノードのいずれかの要素が現在のツリーに完全に収まらなくなった場合は、それを親に移動します。
- 現在のノードのいずれかの要素がサブツリーに収まる場合は、それをサブツリーに挿入します。
これでいいですか?改善できますか?
java - 2d ボール衝突問題: エネルギー保存なし
さまざまな半径と質量を持つボールが完全に弾力性があり摩擦のない環境で跳ね返る単純な物理シミュレーションを作成しようとしています。私はこのリソースに従って独自のコードを書きました: http://www.vobarian.com/collisions/2dcollisions2.pdfそして、ここからコードをテストしました:ボールからボールへの衝突 - 検出と処理
質問が編集されました
Rick Goldstein と Ralph の助けを借りて、コードを動作させることができました (タイプミスがありました..)。助けてくれてどうもありがとう。ただし、他のアルゴリズムが機能しない理由についてはまだ混乱しています。ボールは正しい方向に跳ね返りますが、システムの総エネルギーは決して保存されません。画面上の静的な位置でボールが点滅し始めるまで、速度はますます速くなります。私が書いたコードよりもはるかに簡潔なので、実際にこのコードを自分のプログラムで使用したいと思っています。
これが私が書いた関数型アルゴリズムです (ただし、最初のビットは別のソースから取得しました)。それはバブルクラスにあります:
そして、これが機能しないものです
何か見つけたら教えてください。ありがとう