問題タブ [bullet]

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 に答える
2236 参照

c++ - 弾丸を撃つとSFMLゲームが遅くなる

SFML を使用して C++ で小惑星ゲームを作成しています。弾丸の発射には問題があるようです。弾丸が発射されるたびにクラスが機能しているように見えますが、ゲームの速度が大幅に低下します。これは宇宙船と弾丸のコードです。私はそれの何が問題なのかを見つけることができないようです!お時間をいただきありがとうございます。

これは船のコードです:

そして、これはBullet用です:

編集: Spaceship クラス内に画像をロードし、作成後に Bullet のリソースに渡すようにコードを変更しました。問題はまだ同じままです。弾丸が発射されるたびにゲームはますます遅くなり、消されるまで遅くなります。

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

c++ - btGhostObject は複雑なメッシュ (AABB だけでなく) を使用できますか?

そのドキュメントでは悲しいです:

btGhostObject は、オーバーラップしているすべてのオブジェクトを追跡できます。デフォルトでは、このオーバーラップは AABB に基づいています。これは、キャラクター コントローラ、衝突センサー/トリガー、爆発などの作成に役立ちます。

基礎となるメッシュの AABB のみであるため、AABB との衝突のみを検出し、複雑なメッシュ構造は検出しないということですか?

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

c++ - Irrlicht サーバー側

現在 Irrlicht でマルチプレイヤー ゲームを開発しています。

クライアント側では Irrlicht を使用してレンダリングを実行し、サーバー側では Bullet を使用して物理計算を実行します。

残りの部分 (GUI、ネットワークなど) には Qt を使用しています。

Irrlicht には、次のような便利な機能がいくつかあります。

  • 解凍せずにアーカイブ ファイルからメッシュ、テクスチャなどをロードします。

すべてのリソースを TAR ファイルに保存し、サーバーがそれをクライアントに送信し、(解凍せずに) Irrlicht をロードします。これは非常に便利です。

しかし、Bullet は衝突検出を実行するためにモデルを知る必要があるため、モデルをロードする必要があります。

解決策は、Qt と libarchive を使用して TAR パーサーを開発し、Bullet でそれをロードするように指示することConvexDecomposition::WaveFrontObjです。しかし、より簡単な解決策は、Irrlicht を使用してアーカイブからメッシュをロードすることです (コードは既に作成されているため)。

では、ビデオ ドライバーにレンダリングせずに、サーバー側で Irrlicht を使用する方法はありますか?

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

c++ - DirectX 11 - ブレット デバッグ ドロー

自分の DirectX 11 ゲーム エンジンで Bullet Physics を使用しており、bullet が提供するデバッグ描画クラスを使用したいと考えています。基本的に、箇条書きで描画する必要があるすべての線を受け取るクラスを作成しています。DirectX 11 で 3D ラインを描画する簡単で高速な方法はありますか (できればバッファーやシェーダーなどを使用せずに)?

0 投票する
0 に答える
350 参照

performance - JME3弾丸の物理をできるだけ早くシミュレートする方法

私は弾丸物理学を使用した車のシミュレーションに取り組んでおり、シミュレーションを高速化できるようにしたいと考えています。物理シミュレーションをできるだけ速く実行できるようにしたいと考えています。

pSpace.update(1/60, 1) (DynamicsWorld.stepSimulation を直接呼び出す) を呼び出してから、physicsTick をリッスンして、これを再度呼び出してみました ( => 何も待機しません)。残念ながら、スレッドはすべての弾丸の作業が完了するのを待っていないようで、オブジェクトは表面を通過します (StackOverflowError を乗り越えたとき)。

計算が完了したら、弾丸によって呼び出されるメカニズムがおそらく必要であり、再度呼び出すことができます。

それとも、弾丸にはスピードアップできない独自のクロックがあり、私は完全に間違っていますか? 私はそれが与えられた時間の力の単一の計算として機能すること全体を見ています.

JME3 は stepSimulation(speed * tpf, 4) を呼び出すことで弾丸を高速化できることを知っていますが、4 つのステップを続けて実行するため、シミュレーションを最大で 4 倍しか高速化できません。

誰かのヒントをどうもありがとう。