問題タブ [collision]

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

collision - 表面からボールを​​跳ね返す

私は現在、ブレイクアウトのようなゲームを書いている最中ですが、どうすればボールを表面から適切に跳ね返すことができるのだろうと思っていました。

私は速度を90度回転させる素朴な方法を採用しました。それは次のとおりです。

これは(当然のことながら)あまりうまく機能しませんでした。ボールの位置と速度、およびボールが当たるポイント(ただし、代わりに跳ね返るポイント)がわかっている場合、そのポイントからボールを​​跳ね返すにはどうすればよいですか?

制約:

  • 私は整数数学を使用しています(どこにもFPはありません)
  • 私のすべての表面は単純な平らな表面です(垂直、水平、またはブロック)
  • 90度の角度で跳ね返りたいだけです
  • すべての衝突は純粋に弾力性があります(これはブレイクアウトです-摩擦などの必要はありません)

言語固有のコードは必要ありません。誰かがこれを適切に行う方法についての小さな数式を提供できれば、それは私にとってうまくいくでしょう。

ありがとう!

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

objective-c - touchesmoved オブジェクトが壁に衝突しないように制限しますか?

シンプルなimageViewをドラッグできる非常にシンプルなゲームを作成しようとしています。問題は、フレーム (単なる長方形) に、画像を載せてはならない壁があることです。だから私はこのようなことをしました:

しかし、問題は、画像が境界を超えてそこに行き詰まり、タッチ移動が終了したことでした。

だから私はこれを追加しました:

しかし、これにより、「壁」と交差するときに画像がちらつき始め、最終的にはそこで動かなくなりました。

それを行う簡単な方法がなければならないと感じています。誰か教えてください。

0 投票する
8 に答える
3140 参照

xna - 2D ゲームでの表面検出?

私は 2D プラットフォーム ゲームに取り組んでおり、表面 (衝突) 検出を実装するための (パフォーマンス面での) 最善の方法は何かと考えていました。

これまでのところ、線のリストで構成されたレベル オブジェクトのリストを作成することを考えており、線に沿ってタイルを描画しています。

代替テキスト http://img375.imageshack.us/img375/1704/lines.png

上り坂/下り坂を歩いているときにyの位置を簡単に操作するために、すべてのオブジェクトが彼が歩く表面のIDを保持していると思います。

このようなもの:

したがって、「水面での落下/歩行」を検出するために私が使用するロジックは、単純なポイント (プレーヤーの下肢) - タッチ - ライン (表面) のチェックです (いくつかの安全な概算を使用して - ラインから 1 ~ 2 ピクセルとしましょう)。

このアプローチは大丈夫ですか?この問題に関する読み物を見つけるのに苦労しているので、遠慮なくリンクやアドバイスをドロップしてください。

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

math - GUIDが常に一意であると想定しても安全ですか?

衝突の可能性はわずかですが、たとえば1000個のGUIDのバッチを生成した場合、それぞれのテストを保存するために、それらがすべて一意であると想定しても安全ですか?

ボーナス質問

GUIDの一意性をテストする最適な方法は?ブルームフィルターかも?

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

c# - これにより、複数の同一の GUID が発生する可能性はありますか?

GUID の生成は時間に依存するため、異なるスレッドでまったく同じ瞬間に System.Guid.NewGuid() が複数回呼び出された場合、同じ GUID が返される可能性がありますか?

0 投票する
2 に答える
3025 参照

physics - 円を別の円に反射させる

iPhone と Objective C での作業。

私はゲームに取り組んでおり、円オブジェクトからボールを​​正しく反射する必要があります。線と円の交差点としてやろうとしています。ボールの位置が円の外にあり、新しいボールの位置が次のドローの更新時に円の内側になります。線(ボールの軌跡)と円の交点がわかります。ここで、交点を中心にボール パスの終点を回転させて、接線からの正しい反射角度を得たいと考えています。

以下が知られています。

  • ボール電流 x,y
  • ボールエンド x,y
  • ボール半径
  • 円の中心 x,y
  • 円の半径
  • ボール パスと円 x および y の交点

接線と入ってくるボールのパスの間の入射角を見つける必要があることはわかっています。これは反射角にも等しくなります。これらの 2 つの角度がわかったら、それらを 180 から差し引いて回転角度を取得し、交点の角度を中心にその量だけ終点を回転させることができると思います。方法がわかりません。

0 投票する
2 に答える
327 参照

unix - Unix ディレクトリ構造: ファイル名の競合の管理

通常、`make install' が実行されるたびに、ファイルは /usr/prog1 のような特定のディレクトリに配置されません。代わりに、ファイルは /usr/lib や /usr/bin など、他のプログラムからのファイルが既に存在するディレクトリに配置されます。これは昔からの常識だと思います。この慣行により、ファイル名の衝突の可能性が確実に高まります。

私のグーグルはこの問題について良い議論を返さなかったので、ファイル名の衝突を管理するために人々は何をしているのでしょうか? 彼らは単にこの名前またはその名前を試して、何か問題が発生した場合、ユーザーによってバグが報告され、開発者は別の名前を選択しますか? それとも、単にファイルの名前にプレフィックスを付けるだけですか? この問題に関する良い議論を知っている人はいますか?

0 投票する
2 に答える
526 参照

iphone - Chipmunk Physics で衝突速度を確認する

Cocos2D を使用して、iPhone 用の Chipmunk 5 を使用しています。2 つの特定のオブジェクト間の衝突時に、その衝突の速度をチェックするメソッドを実行したいと思います。x を超えている場合は 1 つのコード セットを実行し、x の下にある場合は別のセットを実行します。

これで、基本は理解できましたが、衝突検出のメソッドを実行するコードと衝突速度をチェックするコードがわかりません。

どんな助けや指針も大歓迎です。

乾杯。

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

actionscript-3 - Actionscript 3 ピクセル パーフェクト コリジョン。方法?(学習目的)

このためのクラスを作成している人がいることを知っています (つまり、http://coreyoneil.com/portfolio/index.php?project=5 )。でも、必要な方法で必要なものをすべて作成できるように、自分でそれを行う方法を学びたいと思っています。

BitMap と BitMapData について読みました。MovieClip を BitMap に .draw できるはずなので、衝突を探してピクセルを循環させることができます。しかし、オフセットを扱うのは奇妙で紛らわしい..そして、MyBitMap.rectが常にx = 0およびy = 0であるように継ぎ目があります...そして、物事の元の位置を見つけるために継ぎ合わせることができません...

最初に hitTestObject を実行することを考えています。これが正の場合、ピクセルの衝突についてムービークリップの四角形の間の交差を調査します。しかし、別の問題もあります (ムービークリップの回転)...

...その方法について、ここでいくつかの啓蒙が必要です。お願いします、どんな助けでも大歓迎です..

0 投票する
2 に答える
844 参照

java - 真円から真円、真円から直線への衝突 HANDLING in Java

私は Java の初心者ですが、たくさんのボールが跳ね回るアプリケーションを作成することにしました。この種のスレッドで多く言及されている法線について、私はほとんど何も知らないことに注意してください。また、代数 1 しか取っておらず、三角関数 (sin、cos、tangent) についても少し知っています。いずれかの方法...

を使用して、衝突検出をカバーしています
if (java.awt.geom.Point2D.distance(X1, Y1, X2, Y2) < ball1.radius + ball2.radius) {return true;} else {return false;}

if (ball.x + ball.radius > getWidth) {COLLISION}

4つの壁すべてについて

私がする必要があるのは、これらの衝突を、速度と方向を切り替えるだけでなく、半現実的な方法で処理することです。

すべてが JPanel で描画されます

事前にご協力いただきありがとうございます