タグ付けされた質問 「bounding-boxes」


5
ゲームの俳優は自分自身を描く責任がありますか?
私はゲーム開発は初めてですが、プログラミングは初めてです。 私は(再び)JavaScriptのcanvas要素を使用してPongタイプのゲームで遊んでいます。 Paddle次のプロパティを持つオブジェクトを作成しました... width height x y colour 次のPongようなプロパティを持つオブジェクトもあります... width height backgroundColour draw()。 draw()現在、メソッドはをリセットしてcanvasおり、そこで問題が発生しました。 必要があるPaddleオブジェクトが持つdraw()その描画方法は責任、または必要があるdraw()のPongオブジェクトがその役者を描くための責任がある(私が間違ってる場合、私はそれが正しい用語であると仮定し、私を修正してください)。 私はのためにそれがadvantagousだろうと考え出しPaddle自体を描画するために、私は2つのオブジェクトをインスタンス化するように、PlayerとEnemy。それはでなかった場合Pongのdraw()、私は二度同様のコードを記述する必要があると思います。 ここでのベストプラクティスは何ですか? ありがとう。

3
チームはソースファイルの上書きをどのように防止しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 たとえば、ゲームエンジンなどが複数の人によって同時に処理されているときに、上書きをどのように防ぐことができるのか、ということが起こりました。 開発者1が作業してAudio.cppおり、開発者2も作業をしているとしましょう。Audio.cppこれは、一般的に大規模なチームで上書きに対処するためにどのように管理されていますか?(つまり、開発者2がファイルを開くのを停止して、開発者1が終了するまで)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

3
OBB対OBB衝突検出
2つのバウンディングボックスオブジェクトがあり、それぞれがボックス内の現在の頂点をベクトルに格納し、オブジェクトのすべての頂点が共通の軸に対して回転および変換されているとします。 ここに私の問題を説明するための画像があります: 2つのOBBがリンクをオーバーラップしている場合、どうすれば問題の解決策を説明するのに役立つのでしょうか。複雑すぎることはありません...

3
多くの正方形のタイルベースの効率的な衝突検出?
現在私はタイルベースのゲームの独自のテイクに取り組んでいます(Terrariaを考えてくださいが、空想的ではありません(それは言葉だと思いますか?そうでない場合は申し訳ありません))。 とにかく、私は現在、衝突検出が機能しています(コーナーケースの場合でも!)。これは私にとって大きな一歩でした。スプライトがブロックを通過しないのを見るのは非常にうれしいことです。しかし、それから私はベンチマークするという考えを持っていました。悪いアイデア。 1,000平方、問題ありません。10,000の正方形、3つの文字は少し遅れました。3文字で100,000の正方形(本当に巨大な地図)はプレイできませんでした。 プレイヤー、キャラクター、アイテムなどから遠すぎるブロックも考慮したくないという問題がありますが、それらを常にメモリからロードしたくありません。 ここまでが私のアルゴリズムです。自由に非難してください。 foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between the two bounding boxes if (depth of intersection != Zero-vector) { check y size vs x size resolve on smallest …

2
2Dオブジェクト整列境界ボックス交差テスト
2つのオブジェクト配置の境界ボックスがあります(つまり、軸配置ではなく、オブジェクトとともに回転します)。オブジェクトに配置された2つのボックスが重なっているかどうかを知りたい。(編集:注-私は軸に沿った境界ボックステストを使用して遠くのオブジェクトをすばやく破棄しているので、クワッドルーチンが少し遅いかどうかは関係ありません。) 私の箱は4つのX、Yポイントとして保存されます。答えを探して回りましたが、例の中の変数名とアルゴリズムを理解して、特定のケースに適用することはできません。 誰かがこれがどのように行われるかを明確かつ簡単な方法で教えてくれますか?ありがとう。(特定の言語は重要ではなく、Cスタイルの疑似コードで問題ありません。)

3
AABBを使用した衝突検出の問題
メインゲームスプライトとさまざまなプラットフォームの間にAABBを使用して、単純な衝突検出ルーチンを実装しました(以下のコードを参照してください)。それは素晴らしい働きをしますが、私は今、私のキャラクターを倒すために重力を導入しています、そしてそれは私のCDルーチンでいくつかの問題を示しています。 問題の核心は、私のCDルーチンがスプライトを他のスプライトにほとんど浸透していない軸に沿って戻すことです。したがって、XよりY軸の方が大きい場合は、X軸に沿って移動します。 しかし、今私の(ヒーロー)スプライトはフレームあたり30ピクセルの速度で落ちています(それは1504の高画面です-「通常の」重力をシミュレートしたいので、これだけ速く落ちる必要があります。 )これらの問題が発生しています。私は何が起こっているのか(そして私がそれを引き起こしていると考えていること-よくわかりません)をいくつかの写真で示します(写真の下のコード)。 この問題を回避する方法についていくつかの提案をいただければ幸いです。 明確にするために、上の右の図で、位置が「誤って」修正されていると言うと、少し誤解を招く可能性があります。コード自体は、それがどのように書かれているのか、つまり別の言い方をすると、アルゴリズム自体が正しく機能します。期待どおりに動作する場合はアルゴリズム自体ですが、この問題の発生を防ぐために動作を変更する必要があります。画像内のコメントを明確にしてください。 私のコード public boolean heroWithPlatforms(){ //Set Hero center for this frame heroCenterX = hero.xScreen+(hero.quadWidth/2); heroCenterY = hero.yScreen+(hero.quadHeight/2); //Iterate through all platforms to check for collisions for(x=0;x<platformCoords.length;x+=2){ //Set platform Center for this iteration platformCenterX = platformCoords[x]+(platforms.quadWidth/2); platformCenterY = platformCoords[x+1]+(platforms.quadHeight/2); // the Dif variables are the difference …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.