2017-08-15 5 views
0

私は今、自分のゲームをslick2dに移植し始めました。私は鉱山のエンティティ同士を衝突させたいのです。
shapeA.intersects(shapeB)は、2つの図形が交差しているかどうかをチェックしていますが、それらが衝突してお互いに重なり合うことができないようにしたいと思います。
形状が四角形のみの場合は簡単ですが、そうではありません。
効率的な方法でこれを実行する方法はありますか?シェイプが互いにクリップするのを防ぐ

答えて

0

うまくいけば、私はあなたの質問を正しく得ました。

これを行うには、ゲームに衝突を実装する必要があります。これを達成するアプローチは、あなたの形状が例えばxが現在の位置の頭部を調整していると仮定することです。

これは、移動中に2つの図形が交差しているかどうかを常に確認する必要があることを意味します。次の移動で交差すると、頭を移動できない場合は交差または明白に交差します。このアプローチをあなたのニーズに完全に適応させることができます。たとえば、衝突させて互いを突き合わせることができないように戻すことができます。

このトピックとさまざまなアプローチに関する多くのチュートリアルがあります。それらをチェックアウトする必要があります。

+0

解決策が見つかりました。私は、xの任意のyの速度との関係を計算し、シェイプが移動するステップサイズを作成するベロシティハンドラを作成しました。ハンドラは、ステップごとに別のシェイプと交差するかどうかをチェックします。その場合、位置は最後のステップにリセットされます。 –

+0

偉大な解決策を見つけた:) –

関連する問題