問題タブ [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 投票する
5 に答える
4533 参照

c++ - エレガントな衝突処理メカニズムを作成するにはどうすればよいですか?

私は少しピクルスになっています。単純な2Dのゼルダのようなゲームを作っているとしましょう。2つのオブジェクトが衝突すると、それぞれにアクションが発生するはずです。ただし、主人公が何かに衝突した場合の反応は、衝突したオブジェクトの種類にのみ依存します。それがモンスターの場合、彼は跳ね返る必要があります、それが壁の場合、何も起こらないはずです、それがリボン付きの魔法の青い箱の場合、彼は癒す必要があります、など(これらは単なる例です)。

また、両方が衝突の一部であることに注意する必要があります。つまり、衝突イベントは、どちらか一方だけでなく、キャラクターとモンスターの両方で発生する必要があります。

このようなコードをどのように記述しますか?たとえば、グローバルWorldObjectクラスに仮想関数を配置して、属性を識別する、非常に洗練されていない方法をいくつか考えることができます。たとえば、GetObjectType()関数(int、char * s、オブジェクトをモンスターとして識別するものを返します) 、Box、またはWall)の場合、Monsterなどのより多くの属性を持つクラスでは、GetSpecies()などのより多くの仮想関数が存在する可能性があります。

ただし、これは維持するのが面倒になり、衝突ハンドラーに大きなカスケードスイッチ(またはIf)ステートメントが発生します。

ファイルを使用するオプションもあり、ファイルには次のようなものがあります。

そして、コードは、仮想関数がすべてを乱雑にすることなく、属性を取得できます。ただし、これはカスケードIfの問題を解決しません。

そして、それぞれの場合に関数を持つオプションがあります。たとえば、CollideWall()、CollideMonster()、CollideHealingThingy()などです。これは個人的には私の最も嫌いなものです(ただし、それらはすべて好感が持てるとは言えませんが)、維持するのが最も面倒なようです。

誰かがこの問題のよりエレガントな解決策についていくつかの洞察を与えてもらえますか?助けてくれてありがとう!

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

hash - UTF16 のファイル パスの適切な 64 ビット ハッシュを探しています

Unicode / UTF-16 でエンコードされたパスがあります。パス区切り文字は U+005C '\' です。パスは、null で終わるルート相対 Windows ファイル システム パスです (例: "\windows\system32\drivers\myDriver32.sys")。

このパスを64 ビットの符号なし整数にハッシュしたいと考えています。「暗号的に健全」ある必要はありません。ハッシュは大文字と小文字を区別しない必要がありますが、ASCII 以外の文字を処理できます。明らかに、ハッシュも適切に分散する必要があります。

私が持っていたいくつかのアイデアがあります:

A) Windows ファイル識別子を「ハッシュ」として使用する。私の場合、ファイルが移動された場合にハッシュを変更したいので、これはオプションではありません。

B) 通常の文字列ハッシュを使用するだけです: ハッシュ += プライム * ハッシュ + 文字列全体のコードポイント。

パスが「セグメント」(フォルダー名と最終的なファイル名) で構成されているという事実を活用できると感じています。

ニーズをまとめると、次のようになります。

1) 64 ビット ハッシュ
2) 適切な分散/ファイル システム パスの競合が少ない。
3) 効率的
4) 安全である必要がない
5) 大文字と小文字 を区別しない

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

computer-science - 衝突を最小限に抑えるためにハッシュコードを作成するにはどうすればよいですか?

理想的なハッシュコード アルゴリズムが研究領域であることは知っていますが、衝突を最小限に抑えるためにどのような賢明なことを行うことができ、なぜそれらが機能するのでしょうか?

たとえば、素数を利用するハッシュコード関数を見たことがありますが、その利点は明らかではありません...

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

silverlight - 長方形を移動するための衝突処理

Silverlight 3アプリケーションでは、ツリーを表示します。ツリーノードには自作のユーザーコントロールが使用され、接続にはLineArrowオブジェクトが使用されます。ツリーを最初に表示した後、次の「物理的特性」によってノードを移動させたい

  • ノードを引き下げる重力があります
  • 親への力ベクトルがあります
  • それは子供たちがそれを彼らの真ん中に引き寄せます

当然、私のユーザーコントロールはまもなく重複します。しかし、私はそれらが重なることを望んでいません。物理学の用語では、それらを固体オブジェクトにし、2つのオブジェクトが同じ空間に存在できないという物理的ルールを適用する必要があります。

この問題に取り組む方法について何か提案はありますか?記述された部分が私のプロジェクト内で使用される唯一の物理学であるため、私はこれにfarseerのような物理学エンジンを使用したくありません。

よろしくお願いします、
フランク

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

algorithm - スライドする AABB の衝突 - エッジで動かなくなる

私は 3D タイル ベースのゲームに取り組んでおり、AABB 衝突検出を使用しています。プレイヤーが交差しているすべての立方体について、プレイヤーが立方体と最も交差していない軸を見つけ、その軸に沿って立方体からプレイヤーを押し出します。

キューブがチェックインされる順序によっては、複数のキューブの端に沿ってスライドするときに問題が発生する可能性があります。問題を説明する図を作成しました。

http://imgur.com/mmK0W.png

  • 矢印 #1 は、プレイヤーが試みた動きです。他の矢印は衝突応答です。
  • 左の図では、衝突は最初に右の立方体に対してテストされ、プレイヤーは左に押し出され、次に上に押し出されます。(悪い)
  • 右の図では、最初に左の立方体に対して衝突がテストされ、プレーヤーが押し上げられ、その時点でプレーヤーはもう一方の立方体と交差していません。(良い)

これを解決する最も効率的な方法についてのアイデアはありますか? または、衝突応答を処理するためのより良い方法はありますか?

ありがとうございました。

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

iphone - iPhoneでcocos2d+Box2dを使用して曲線でレベルを作成するにはどうすればよいですか?

次のようなレベルのゲームを作成したい:http://img169.imageshack.us/img169/7294/picdq.png

プレーヤーはレベルを「飛ぶ」ように移動し、壁に衝突してはなりません。どうすればそのようなレベルを作成できますか?

私はそのソフトウェアを見つけました:http://www.sapusmedia.com/levelsvg/

それほど安くはないので、上の写真のようなレベルを作る別の方法があるのではないかと思います...?

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

scroll - 物理学で 2 次元の世界をスクロールする

私は物理学で横スクロールゲームを書いています。手を汚す前に、私は物理学とグラフィックスのレンダリングに集中し始めました。最初は、すべてを静的(非スクロール)に保つことを考えていました。多くのチュートリアルを参照した後の物理学については、最終的にここに行き着きましたhttp://www.tonypa.pri.ee/vectors/tut08.html. この一連のチュートリアルは、単純なゲームに必要な基本/高度な物理のほとんどをカバーしています。このチュートリアルに従って、三角形、ボックスなどのオブジェクトを使用して 2D ワールドを作成しました。それぞれの異なるオブジェクトの頂点は、衝突、バウンス、......を計算するためのベクトルとして保存されます。 x/y に力を適用すると、衝突可能な各オブジェクトが静的である限り、完全に機能します。現在、方向(右/左)に従ってすべてのベクトルを移動する方法と、同時に衝突のベクトルの新しい変更を更新する方法に苦労しています。この翻訳がタイルベースの環境でどのように機能するかについての基本的な理解があります。しかし、非タイル ベースの世界では、ベスト プラクティスは何ですか。前もって感謝します。

0 投票する
5 に答える
2481 参照

algorithm - パズルの解決策を見つけるためのアルゴリズム

私は、プレイヤーがゲームボードで最初から最後まで自分の道を見つけなければならないゲームを作ろうとしています。

ご覧のとおり、このゲームボードにはたくさんの赤い円形の障害物が含まれています。ゲームに勝つためには、プレイヤーは最小限の障害物を取り除く必要があります。だから私の質問は、パスを解放するために、削除する障害物の最小量をプログラムで見つけるにはどうすればよいですか?自由行程は、円が重なり合っておらず、接触していない間のスペースと見なされます。

したがって、私が本当に必要としているのは、削除する円の最小数です。実際のパスは必要ありません。これを行う簡単な方法はありますか?

そして、このゲームボードの理解を補うために、円はそれぞれ同じ半径を持ち、黒い線で制限されています。

また、直線で移動する必要はありません。

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

iphone - Iphone-CGPointIntersectsRect衝突問題?

問題は、プレイヤーがblackBと衝突したときに、プレイヤーが停止しないことです。それはゆっくりとblackBを通過し続けます。IBActionはゲームループで使用されています。blackBと衝突したときにプレーヤーを完全にフリーズする方法が必要です。どんな助けでも大歓迎です、私は初心者プログラマーです。ありがとうございました!

playerとblackBはどちらもUIImageViewsです

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

c++ - Box2D 長方形衝突

私は作成中のゲームの物理演算に Box2D を使用しています。Box2D を使用して長方形を取り、実際の物理演算を行わずに別の長方形と衝突するかどうかを確認する方法があるかどうかを確認したかったのです。例:

前もって感謝します!