タグ付けされた質問 「collision-detection」

衝突検出とは、ゲームプレイ中に2つ以上のエンティティが互いに接触するかどうかを決定することです。

2
プラットフォーマーゲームループでの操作の正しい順序
ロックマンエンジンで問題が発生しました。ゲームループの構造により、修正が非常に困難になっています。Rush Jet、または落下するプラットフォームでは、ロックマンは落下してもプラットフォームに接続されたままでいる必要があります。現在、私ができる最善の方法(彼を引き寄せる魔法の力場のような回避策に頼ることなく)は、プラットフォームが最初に落ち始めたときに彼が1フレーム落ちるようにすることです。しかし、これでも、衝突チェック中に落下プラットフォームが彼を引き下げる必要があります。この追加のステップがなければ、プラットフォームが下降するとき、彼は常に「揺らぎ」ます。 ゲームループ内のイベントの順序がこれを実現しています。こんなふうになります: ロックマンとラッシュジェットがしばらく水平に飛んでいます。 思考フェーズ:プレーヤーが押し下げる-プラットフォームは速度を下向きに設定することを決定します。 アクションフェーズ:プラットフォームが下に移動します。プレーヤーはこれを認識していません。 反応フェーズ:2つは衝突していないため、「拘束力」チェックは行われません。 次のフレームでは、ロックマンが落ちます。1フレーム後、重力が追いつき、再びプラットフォームに着地し、y速度を0にリセットします。 ループの基本的な順序がわかります。 前のフレームからの衝突やその他の変数を分析して、状態遷移やその他の調整を決定する思考フェーズ。 アクションフェーズ-全員が速度に従って移動します。 反応フェーズ-衝突チェック、位置を調整して修正します。これは、プラットフォームの移動などのエフェクトも処理します。プレーヤーをある程度押します。彼の速度の変更は、アクションフェーズの次のフレームで適用されます。 私はこれらの手順と他のさまざまな変更を並べ替えてみましたが、すべてのバグがあり、すべてが全体をさらに悪化させています。これらのことを正しくするためにエンジンに大幅な変更を加える必要がある場合は、時間を無駄にする前に、「適切な」方法が何かを知りたいと思います。 私が考えられる解決策の1つは、前のフレームでプラットフォームに触れていた人を見て、その人を引き寄せて実際に一緒に移動するという動きのステップになることを知っています。しかし、それは複雑すぎるようで、そのようなコンポーネント間で到達します。私のエンジンコードは、元のゲームよりもずっと複雑に感じられ、何か間違っていることを示唆しています。 それで、イベントの適切なシーケンスはありますか?プラットフォームに沿って物事を移動することについてここで別の質問がありますが、それは私の問題の原因となるイベントの問題の順序には対応していません。また、クラシックロックマンのゲームのやり方を実際に知っている人がいれば、それは大きな助けになります。 https://github.com/Tesserex/C--MegaMan-Engine/tree/master/Mega%20Manで、必要なだけ私のコードを見つけてください。CollisionComponentとMovementComponentが最も便利です。

2
衝突システムの実装
まともな衝突システムを実装するための良い方法が何であるかを知りたいだけです。基本エンティティクラスから継承されたクラスとして?現在私は行き詰まっているので、自分のアイデアよりも優れたアイデアをいくつか使用することができます。 どんな助けでもありがたいです! 編集:すみません、それは2D衝突ですが、正直なところ、特定の衝突方法を探していません。実装ラインについてもっと調べています。次のような衝突システムを実装する一般的な方法のいくつかに興味があるだけです。 衝突システム全体を独自のクラスにする必要がありますか?何が継承可能であるべきですか? これらは私の質問の一部です。混乱させて申し訳ありません。

2
2D CSG(衝突形状用)を実装していますか?
2Dポリゴンでの基本的なCSG操作のための単純な(または十分に文書化された)アルゴリズムはありますか? いくつかの重複する2D衝突形状を「追加」する方法を探しています。これらは凸状または凹状ですが、自己交差のない、一連の線分として定義される閉じた形状になります。 これを使用すると、2D物理エンジンで使用するために、それぞれが独自の衝突形状を持つ多数の任意に配置された(頻繁に重なり合う)オブジェクトで構成されるシーンから、クリーンな衝突エッジのセットを構築できます。 まず、形状を「追加」するだけで十分ですが、穴を作成するために「差し引く」機能も役立ちます。

2
長方形の衝突応答を実装するにはどうすればよいですか?
私はJavaScriptでゲームに取り組んでおり、現在の衝突の実装では、最短距離を使用して交差するオブジェクトを押しのけていますが、これは常に正しいとは限りません。この理想的な衝突の図を作成しました。赤いボックスは開始位置、緑のボックスは適切な位置、黒いボックスは衝突する静的オブジェクトを表します。青い矢印は速度ベクトルです。私の現在の実装では、オブジェクトは最終位置に配置されて押し出されます(この場合、オブジェクトは左に押し出されます) どうすれば修正できますか?

1
コードでゲームのキャラクターを表す方法は?
前のゲームで、ゲームのキャラクタークラスがあると書きました。このクラスは、位置、速度、および一連の状態を追跡しました。状態がアニメーションに非常に近いことを除いて。各状態には、他の状態に遷移できるボタンのリストと、その状態に連動するアニメーションがあります(非常に具体的なタイミングのパンチや、何か)。キャラクターのすべての衝突データは、アニメーションフレームごとに行われました。これは格闘ゲームのために行われたので、当時はアニメーションと衝突をキャラクターの状態に非常に密接に関連付ける必要があったようです。 しかし、私のプログラマーは、これが責任の混合だと感じています。そして今、私はそれよりも少し一般的になりたいゲームエンジンを作成しています。キャラクターに関連する構造、それらがどのように描かれるか、それらがお互いに、そして世界とどのように相互作用するかなどを通常どのように整理しますか? これは私が作りたいゲームの種類に依存する漠然とした質問のようなものだと思いますが、他の人がこれをどのように処理するかを見ることは有用だと思います。 (そして、それが重要であれば、これはすべて2Dゲームの場合です。)

3
単一の背景画像からのパス構築についての推奨事項は?
したがって、私は現在、単一のPNGとしての背景といくつかの障害(そのPNGの一部としてのブロックなど)を持っています。パスを作成するために、私は現在、ユニークな緑色(丘)の上にピクセルを格納し、これを使用してキャラクターを移動しています。私の質問は、衝突レイヤーマスクのようなものを作成するか、どういうわけか私のPNGをタイルの束に変換する方が良いですか?これは可能ですか?

3
3D衝突検出ミドルウェア[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 2年前休業。 (私はこの質問を2つに分けました。2Dについては、2D衝突検出ミドルウェアを参照してください) 3D衝突検出に利用できる推奨ミドルウェアはありますか? Bulletには、物理​​エンジンなしで使用できる非常に優れた3D衝突検出機能があると聞いたと思います。具体的には、3D衝突検出用のBulletまたはその他のライブラリについて何か経験があるかどうか知りたいです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.