問題タブ [collision-detection]

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 投票する
3 に答える
987 参照

collision-detection - ゲームはフレーム レートのみに依存する必要がありますか?

この問題についてあなたの提案をしたい...

簡単にするために、x 軸のみを考えます。

位置 10 にあるオブジェクトをイメージし、その幅も 10 単位で、毎秒 100 単位で前進します。フレームが少ないため、更新ごとに 80 単位移動する必要があります。

最初の update が呼び出された後、その位置は 90 になり、位置 120 に同じサイズの別のオブジェクトがあります。

次の更新では、オブジェクトを位置 170 に移動します。衝突検出を実装する必要があることを考慮して、更新の前後に衝突を計算しますが、どれも機能しません。

ここで簡単な質問が来ます...

この場合どうすればいいですか?

次のようにします。

私はこの解決策が好きではありません。この場合は問題ないかもしれませんが、x、y、z と多くの移動オブジェクトがある場合はどうでしょうか?

私が良いと思った別の解決策は、信頼できるかどうかはわかりませんが、このすべての計算をループで実行する別のスレッドを用意することです。

このスレッドは無限ループのようなものになり、反復ごとelapsedTimeに非常に小さいと思われるものを計算し、動き続けて衝突を計算し、はるかに遅いレンダリングスレッドが現在の状態を取得しますオブジェクトの、それをレンダリングするだけです。

どう思いますか?

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

xna - XNA衝突検出

ボールが立方体の内側を移動していて、それが立方体の外側に出たときを検出します(境界球と境界ボックスを使用)。ここで、ボールがどちら側から出ているかを検出したいと思います。次に、ボールを正しい方向に向け直すことができました。ボールの「ワールド」マトリックスを使用してこれを行うにはどうすればよいですか?

ボールの座標を自分で追跡する必要がありますか、それともワールドマトリックスからそれらを推測する必要がありますか?

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

2d - 地形衝突検出のための簡単な 2D 物理学のチュートリアル

これ( http://www.teagames.com/games/tgmotocross/play.php )のような単純な 2D 物理を行う方法を示すチュートリアルを探しています。私が最も興味を持っている部分は、キャラクター/プレイヤーと地形の間の衝突検出がどのように行われるか、そして地形をどのように保存/生成するかです。
チュートリアルの言語は問題ではありません。これを一般的に行う方法に興味があるだけです。
どうもありがとう。


編集:明確にするために、2つのスプライト間の衝突検出を実行する方法と、2Dゲームを作成するのに十分な物理学をすでに知っています-衝突できる滑らかな地形を実装する方法に関するチュートリアル/例を特に探しています(私は理解しています破壊可能な風景がどのように行われるか、そしてこれは何らかの形で関連していると思います)。また、私は N チュートリアルを認識していますが、それは個別の形状を使用していますが、滑らかな風景に興味があります。

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

iphone - シマリスを使用したiPhoneの衝突検出の問題

2 つの小さな問題があります: シマリスの衝突検出: ボールといくつかの静的なポリゴン シェイプとの間の衝突を検出するゲームを開発しています。これは機能していますが、「部分的に」、つまり、約 5 つのゲーム シーン (レベル 1 - 5 など) で機能しますが、6 番目のシーンでは失敗し、7 番目のシーンではすべて正常に機能します。基本的に、衝突検出は機能していますが、時々失敗します..

スペースやボディなどの設定に問題があるとは思いません.しばらくの間はすべて正常に機能し、一連の「正しいシーン」の後にエラーが1回だけ発生するためです。最初は、シーンが終わった後にスペースからシェイプやボディを削除しないことが問題だと思っていましたが、スペースからボディやシェイプを削除した後も問題は続きます。

cocos2d : cocos2d に関しては、加速度計のアクティブ化が時々失敗するという印象があります。

誰かがこれらの問題に遭遇しましたか?どんな提案でも大歓迎です、ありがとう。

投稿数: 1 参加済み: 2009 年 6 月 24 日 (水) 14:34

0 投票する
28 に答える
166614 参照

algorithm - 円線分衝突検出アルゴリズム?

AからBへの線と、半径RのCに配置された円があります。

画像

線が円と交差するかどうかを確認するために使用するのに適したアルゴリズムは何ですか?そして、それは円の端に沿ったどの座標で発生しましたか?

0 投票する
7 に答える
6440 参照

physics - 移動する 2 つの四面体間の連続衝突検出

私の質問はかなり単純です。2 つの四面体があり、それぞれに現在の位置、空間内の線形速度、角速度、重心 (実際には回転の中心) があります。

このデータを使用して、(1) ある時点で衝突するかどうか、衝突する場合は (2) どのくらいの時間衝突したか、および (3) を正確に判断する (高速) アルゴリズムを見つけようとしています。 ) 衝突点。

ほとんどの人は、三角形と三角形の衝突検出を行うことでこれを解決しますが、これは、異なる三角形をチェックする際に、1 つの四面体の同じエッジを他の四面体の同じエッジに対してチェックするなどの冗長な操作で、いくつかの CPU サイクルを無駄にします。これは、物事を少し最適化することを意味するだけです。心配する必要はありません。

問題は、自己回転を考慮した公開の CCD (連続衝突検出) 三角形 - 三角形アルゴリズムを認識していないことです。

したがって、次のデータを入力するアルゴリズムが必要です。

  • 3 つの三角形の頂点データ
  • 回転/質量の位置と中心
  • 線速度と角速度

そして、次のように出力されます。

  • 衝突の有無
  • 衝突が発生した時間
  • 宇宙のどの点で衝突が発生したか

よろしくお願いします。

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

collision-detection - 古いゲームは、壁、床、天井との衝突検出をどのように行っていましたか?

stackoverflow や他のサイトでゲームの衝突検出について読んでいます。彼らの多くは、BSP、境界楕円、統合などについて語っています。しかし、NES では、ゲームで床と壁の衝突検出を行うことができました。壁の衝突を検出するために多くの計算を行ったとは信じがたいと思います。

私の質問は、タイルだけで構成されたレベルを考えると、処理能力がほとんどないマリオやロックマンのようなゲームで壁や床との衝突をどのように検出したのでしょうか?

  • 彼らは動きの経路をたどり、最も近い接続タイルを特定しましたか? (少し調べて)(アプリオリ)
  • 彼らは床との衝突を判断してから、キャラクターを調整する最善の方法を見つけましたか? (事後) これは可変タイムステップでは危険です。十分に速ければ、タイルを飛び越えることができます。NES ゲームのタイムステップはテレビのリフレッシュ レートと同期していると思いますが。
  • 地面にいるとき、重力は常にキャラクターに影響を与えていますか? それとも、タイルの上を歩いていると決めたときに「オフ」にしますか? 崖の端から歩いて降りるときはどうですか?それ以外の場合は、下にあるタイルを特定する何らかの方法が必要になります。
  • タイルに衝突した場合、そのタイルの端を見つけて、キャラクターをその側に移動しますか (進行方向によって異なります)。
  • スーパーメトロイドやマリオのような傾斜したタイルはどうですか?
  • 下をジャンプして上に着地できる「プラットフォーム」はどうでしょうか。「事後」に行う場合、これらのタイルとの衝突にどのように対処しますか?

特定の方向にヒットする最初のタイルを検索するため、基本的に「アプリオリ」な衝突コードをいくつか作成しました。何か良い方法はないかと考えているところです。(代わりに事後衝突検出を使用するだけかもしれません)

たとえば、下に移動するためのタイルの衝突をチェックするコード (私は垂直方向の動きをチェックしてから水平方向の動きをチェックします):

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

c# - 多くのオブジェクトとの衝突検出

特定の時間に画面内に約数百の移動オブジェクトと、1000 以上の静止オブジェクトがあります。簡単にするために、非常に多くのボールを使ったビリヤード ゲームと考えることができます :) 静止しているボールもあれば、さまざまな速度でさまざまな方向に動いているボールもあります。各ボールが別のボールにぶつかるたびに衝突検出が必要です。パフォーマンスと、プログラミングの単純さを考慮して、最良の方法は何ですか? 私はアルゴリズムのみを話しています。私はそれを自分で実装できると思います。実装に関する提案も歓迎します;)

言語は C#、XNA 3.1、2D グラフィックス、ターゲット プラットフォームは Windows のみ (重要な場合)。よろしくお願いします。

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

physics - カスタム物理クラスを OGRE 3D と統合しますか?

大学のプロジェクトで OGRE3D を使用する必要がありますが、物理演算や衝突検出にサードパーティのライブラリを使用することは許可されていません。これには、OGRE に組み込まれている衝突検出の使用が含まれます。

独自のカスタム物理ルーチンを OGRE の組み込みエンティティに追加する正しい方法に問題があります。

OGRE は「エンティティ」オブジェクトをビルディング ブロックの最も基本的なものとして使用し、物理学ではオブジェクトに質量、速度などの属性が必要です。

私が混乱しているのは、OGRE のレンダリング/ロジック ループが、OGRE エンジン内のユーザーから隠されているように見えることです。OGRE のすべてのエンティティを取得し、構築中のカスタム物理エンジンで衝突検出と物理計算を実行できるようにする必要があるため、これは問題です。

独自の物理/衝突エンジン クラスを OGRE と統合するにはどうすればよいですか?

更新: 以下のアドバイスを受けて、OGRE::Entity をサブクラス化しました。

コメントでは、これは OO に準拠するための最良の方法ではないと述べられていますが、私は同意しますが、この段階でより良い方法を見つけることはできませんか? 私はこれを行うことに完全に満足していないので、あなたはどう思いますか、そして何か良いアイデアはありますか.