問題タブ [2d]

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

2d - 地形衝突検出のための簡単な 2D 物理学のチュートリアル

これ( http://www.teagames.com/games/tgmotocross/play.php )のような単純な 2D 物理を行う方法を示すチュートリアルを探しています。私が最も興味を持っている部分は、キャラクター/プレイヤーと地形の間の衝突検出がどのように行われるか、そして地形をどのように保存/生成するかです。
チュートリアルの言語は問題ではありません。これを一般的に行う方法に興味があるだけです。
どうもありがとう。


編集:明確にするために、2つのスプライト間の衝突検出を実行する方法と、2Dゲームを作成するのに十分な物理学をすでに知っています-衝突できる滑らかな地形を実装する方法に関するチュートリアル/例を特に探しています(私は理解しています破壊可能な風景がどのように行われるか、そしてこれは何らかの形で関連していると思います)。また、私は N チュートリアルを認識していますが、それは個別の形状を使用していますが、滑らかな風景に興味があります。

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

iphone - iPhone での 2D 描画の最適化についてサポートが必要

画面いっぱいに 56 個の六角形のピースをボードの形で表示するゲームを書いています。私は現在、ピースを描画するために呼び出されると、渡された座標に基づいて 6 つのポイントからパスを作成するシングルトン レンダリング クラスを使用して各ピースを描画しています。作品に光沢のある外観を与えるために、図面の上に白いグラデーションがオーバーレイされます。現在、Core Graphics でこれを行っていることに注意してください。

私の最初の考えは、描画するたびにパスを作成するのはコストがかかり、これを一度実行してから再利用できるように見えるということですが、これに対する最善のアプローチはわかりません. Shark のボトルネックを見ると、png の描画がプロセスの中で最も負担が大きい部分のようです。pngオーバーレイをレンダリングするか、オーバーレイなしでパスをレンダリングするだけで試してみましたが、両方ともフレームゲインがいくらか得られますが、pngオーバーレイを削除するとほとんどのフレームが得られます.

私の現在の考えでは、起動時に 6 つのパス (私が持っているカラーピースごとに 1 つ) をレンダリングし、それらを png でオーバーレイしてから、これらのピースの画像を保存し、必要なたびにピースを再描画する必要があります。一度描いたものを保存して再描画するための効率的なメカニズムはありますか? 描画png全体に頻繁に遭遇するように思えますが、同様のことを行う負担の少ない方法があるかもしれません...

どんな提案でも大歓迎です。ありがとう!

0 投票する
3 に答える
3792 参照

vector - 2D ベクトルの一般的な向きを決定する

かなり単純な質問があります。ずっと前に答え​​を見つけるべきだったような気がしますが、どういうわけか、この些細な問題に頭を悩ませることができません。

ベクトル v = (x,y) が与えられた場合、それが「一般的な」向きであることを知りたいです。それは、「上」、「下」、「左」、または「右」のいずれかです

ベクトルの方向が 45 ~ 135 度の場合、ベクトルの一般的な方向は「上」です。「左」は 135 ~ 225 度です。「下」は 225 ~ 315 度です。「右」は 315 ~ 45 度です。

角度が正確に 45 度、135 度、225 度、または 315 度の場合はあまり気にしません。

問題は、三角法を使いたくないということです。簡単な解決策があると確信しています。

円全体を 8 つに分割できる解決策があると思います。これが私がこれまでに持っているものです。

基本的に、私は解決策を見つけることができることを知っています。この問題に対するあなた自身のアプローチにもっと興味があります。

ありがとう !

編集:使用されるベクトルは正規化されていません。点のペアを使用して任意のベクトルを表すことができます。ベクトルの原点が (0,0) であると仮定するだけです。

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

text - 2D テキストを 3D メッシュ サーフェスに反映するにはどうすればよいですか?

C#で2Dテキストを3Dメッシュサーフェスに反映するにはどうすればよいですか?

前もって感謝します。

セモ

0 投票する
3 に答える
1363 参照

c# - ゲームでローカル ポジションとグローバル ポジションを設定する方法

Component という基本クラスがあります。I2DComponent と I3DComponent の 2 つのインターフェイスもあります。現在、I2DComponent に取り組んでいます。

実装:

問題は、マウスがその上にあるかどうかを確認するために、グローバル位置または Rectangle にアクセスする必要があることです。

しかし、それを移動するためにアクセスしているときは、ローカル位置にアクセスしたいだけなので、位置 50、50 にゲーム画面がある場合、ローカル位置を 0、0 に設定でき、それが一番上になります親ゲーム画面の左隅。本当の問題は、誤ってRectangleを設定したくないということだと思います

これは多かれ少なかれアクセサの設計上の問題であり、見た目を正しくしたいのですが、そうするのに苦労しています。

アップデート:

I2D コンポーネントが境界とスケールのみを持つように変更し、GameScreen にコンポーネントの現在の「グローバル」位置を取得する機能を持たせた場合はどうでしょうか。

アップデート:

これらの 2D オブジェクトはすべて、3D 空間にない hud または GUI オブジェクトとして描画されるオブジェクトです。ただの説明。

アップデート:

私は今、再帰的にそれを行うことを考えていますが、どうすればこれを行うことができるかわかりません。

0 投票する
3 に答える
27373 参照

multidimensional-array - CUDA のデバイス メモリに 2D 配列を割り当てる

Cudaのデバイスメモリに2D配列を(ホストとの間で)割り当てて転送するにはどうすればよいですか?

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

c - 2D配列を特定のサイズの動的から静的に変更するにはどうすればよいですか?

私は現在動的配列を持っています:

500行X10列の静的な2次元配列を作成したいと思います。各要素には、40文字のメモリが格納されています。

以下はそれを宣言する正しい方法でしょうか?

0 投票する
3 に答える
1373 参照

java - パスファインディング2DJavaゲームのさらなる問題

少し前にJava2Dパスファインディングについて質問しました...パスファインディング2DJava ゲーム?

開発中のゲームは、テーマホスピタルのアイデアに基づいています。私の質問から選ばれた答え、A *パスファインディング、リンクは素晴らしく、とても役に立ちました。最終的にはこれをゲームに実装するようになりますが、それに関してさらにいくつかの質問/問題があります。

私のゲームでは、マップが変更されます。チュートリアルでは、マップが静的であると想定しています(私は思います)。私はコードを見てきましたが、うまくいく限り、パスファインディングコードでゲームマップを更新するために呼び出すメソッドを作成する必要があります。

次に、GameMapクラスが表示されます。私はすべてのタイルを収容するボードと呼ばれる私自身のクラスを持っています。GameMapのメソッドをBoardクラスに統合できると思います。右?

第三に、私はどの部屋もブロックされていると見なされるという推論に取り組んできました。つまり、部屋が覆っている正方形はすべてブロックされたものとして数えられます。人々が部屋に入る場所を前もって考えていました。その後、さまざまな場所に移動するために、これらの部屋を移動する必要があります。正方形ごとにBlockedブール値を反転するだけだと思っていましたが、2つの理由で機能しませんでした。1、部屋には隣接する壁があり、パスファインディングを台無しにする可能性があります。2、ブロックされた状態が単純に反転された場合、部屋の固体アイテムは、反転されたときに固体ではないと見なされ、壁に触れているときに問題が発生する可能性があります。

考えてみると、実際の正方形全体ではなく、正方形の辺をブロックしたほうがいいと思います。これは可能である必要がありますが、前の質問のチュートリアルを使用して取得しているだけで、これを行うためにA *を変更するか、ルームアイテムの問題の回避策に取り組む必要があるかわかりません。

これらの問題のいずれかについての考えや提案はありますか?今日は簡単なパスファインディングを実装していますが、自分の前で考えています。

0 投票する
3 に答える
2442 参照

language-agnostic - 2Dモーションブラーソリューション

モーションブラーを2Dプログラムに組み込むことを考えていますが、現在のアルゴリズムの結果には疑問があります。

私のアプローチは現時点では次のようになっています。

  • バックバッファに描画します。
  • フロントバッファを更新するときは、バックバッファをフロントバッファにブレンドします。
  • 繰り返す

「モーションブラー」効果を引き起こすのは、動きのあるオブジェクトがフェードトレイルを残すため、明らかにブレンドです。

これは明らかにハードウェアにそれほど要求が厳しくなく、ダブルバッファリングはとにかく行われ、唯一の追加のステップは単純な計算であるアルファブレンディングです。ただし、トレイルは非常にシャープで、ぼやけることはなく、少し奇妙に見えるかもしれません。ブレンディングステップの前にバックバッファーでボックスブラーを行うことはできますが、ニンテンドーDSのようなローエンドシステムでは非常に負担がかかるように感じます。

より効率的に実行したり、見栄えの良い結果を生成したりできるソリューションはありますか?