タグ付けされた質問 「2d」

2Dは、座標がX値とY値で表される2次元空間を指します。


2
メガマンスタイルの画面スクロールデザイン
NESの古典的なMega Manシリーズでは、非常に特殊なスクロール手法を使用しており、実装に頭を悩ませています。基本的に、レベルはすべて同じサイズの「画面」に分割されます。いくつかの画面は互いにスムーズにスクロールし、より広い遊び場のように見えます。一部の画面では、プレーヤーが画面の端に到達するまでカメラのスクロールが停止します。画面の端に遷移すると、次の画面が表示されます。1つの画面に複数のトランジションを設定することもできます。たとえば、1つの画面に移動するラダーがありますが、別の画面に進むこともできます。 これらの画面遷移はどのようにモデル化できますか? 画面0は、プレーヤーが開始する開始画面です。 画面0〜3は水平方向に滑らかにスクロールし、プレーヤーには1つの連続したフィールドとして表示されます。 画面3とそれに隣接する画面4と5の間には遷移があるため、カメラが画面3の右端または上端を超えて進むことはありません。 プレーヤーがトランジションエッジのいずれかに移動すると、ユーザー入力は一時的に無効になり、カメラは新しい領域に移行し、その後ユーザー入力が復元されます。 ブルースクリーン(画面5)では、水平方向のスクロールのみが無効になっているため、垂直方向の遷移のみが可能です。 緑色の画面(画面6)には画面5に戻る垂直方向の遷移がありますが、画面7への水平方向のスムーズスクロールも可能です。 編集:部屋の観点からトランジションを実装すると、これにつながります: 矢印付きの小さなノッチは、遷移が発生する可能性のある領域です。各領域には「方向」があり、部屋の可視領域のすぐ外側にあります。プレーヤーがリージョンにヒットするとすぐに、トランジションが開始されます。
25 2d  camera  platformer 

4
抽象的な2Dトップダウン水テクスチャをアニメーション化する方法は?
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細のない回答は、編集または削除できます。 私は現在、海のトップダウンビューでゲームを実装しています。次の、少し抽象的なテクスチャを使用します。 実際のテクスチャは透明ですが、わかりやすくするために緑色のような色を追加しました。 私が今抱えている問題は、このテクスチャをアニメーション化する方法がわからないため、水がきれいに見えることです。私はサイン波でテクスチャを動かそうとしました: texture.y += sin(angle)。もちろん、今ではテクスチャ全体が動いており、非現実的に見えます。次に試したのは、別のレイヤーを追加して視差効果を実装することです。そのため、水面下の反射も移動しますが、はるかに遅くなります。見た目は少し良くなっていますが、それでもまだ...いい感じです。 個々のセルが拡大したり収縮したりする場合、ウェブや布のように見えるのが最高のアニメーションだと思います。誰かがこれらのセルの1つの頂点をわずかに引っ張り、隣接するセルが拡大し、私が引き寄せる(またはプッシュする)セルが収縮すると想像してください。一種のウェブのようなもの(?)。しかし、私はこのようなものを実装する方法がわかりません: これの数学モデルは何ですか?バネのあるもの、どこで力が押したり引いたりしますか? もしそうなら、このモデルを指定されたテクスチャにどのようにマップしますか?すべての曲線を保持し、そうではない... (また、与えられたテクスチャをアニメーション化する方法について、さまざまなアイデア/回答を受け入れています。リアリズムはここでのポイントではなく、動きのような見た目の良い水です...) DMGregoryのソリューション この投稿にlibgdxの例を投稿しました:2D水アニメーションはギザギザで滑らかではありません(テクスチャフィルタリングに関する回答を参照)
24 2d  libgdx  animation  water 

5
2Dタイルゲームで視界面積をすばやく計算する方法は?
タイルのマトリックスがあり、そのタイルのいくつかにはオブジェクトがあります。プレイヤーに見えるタイルと見えないタイルを計算したいので、非常に効率的に行う必要があります(したがって、大きなマトリックス(100x100)と多くのオブジェクトがある場合でも十分に高速に計算されます)。 Bresenhamのラインアルゴリズムを使用してそれを実行しようとしましたが、時間がかかりました。また、いくつかのエラーが発生しました: ----XXX- ----X**- ----XXX- -@------ -@------ -@------ ----XXX- ----X**- ----XXX- (raw version) (Besenham) (correct, since tunnel walls are still visible at distance) (@ is the player, X is obstacle, * is invisible, - is visible) 私はこれができると確信しています-結局のところ、NetHack、Zangbandがあり、彼らはすべてこの問題に何らかの形で対処しました:) これにはどのアルゴリズムを推奨できますか? 必要に応じて、次のように可視を定義します。タイルは、タイルの少なくとも一部(コーナーなど)がプレーヤータイルの中心に障害物と交差しない直線で接続できる場合に表示されます。

3
XNAで2Dスプライトをマスクする最良の方法は?
現在、いくつかのスプライトをマスクしようとしています。言葉で説明するのではなく、いくつかのサンプル写真を作成しました。 マスクする領域(白) さて、トリミングする必要がある赤いスプライト。 最終結果。 今、私はXNAでこれを達成するために2つのことができることを知っています。 ステンシルバッファを使用します。 ピクセルシェーダーを使用します。 私はピクセルシェーダーを試してみましたが、これは本質的にこれを行いました: float4 main(float2 texCoord : TEXCOORD0) : COLOR0 { float4 tex = tex2D(BaseTexture, texCoord); float4 bitMask = tex2D(MaskTexture, texCoord); if (bitMask.a > 0) { return float4(tex.r, tex.g, tex.b, tex.a); } else { return float4(0, 0, 0, 0); } } これは画像を切り取るように見えますが(画像が動き始めると正しくありませんが)、私の問題は画像が絶えず動いている(静的ではない)ので、この切り抜きは動的である必要があります。 シェーダーコードを変更して、その位置を考慮する方法はありますか? あるいは、ステンシルバッファーの使用について読んだことがありますが、ほとんどのサンプルはレンダーターゲットの使用に依存しているようです。(私はすでにゲームの残りの部分で3または4を使用していますが、その上にもう1つ追加すると過剰に思えます) 私が見つけたRendertargetsを使用しない唯一のチュートリアルは、Shawn …
24 xna  2d  hlsl  masking 

3
ゲーム開発のための物理学に関する良い本は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 ゲーム開発における物理学のテーマに関する優れた初心者向けの本を探しています。2Dゲームに焦点を合わせたものが望ましいでしょう。
23 2d  physics  books 

7
円運動でオブジェクトをインターセプトする方法
2D宇宙ゲームを作成していますが、宇宙船が惑星を妨害する必要があります。直線切片の作業コードはありますが、円軌道での惑星の位置の計算方法がわかりません。 ゲームは科学的に正確ではないので、慣性、重力、楕円軌道などについて心配していません。 宇宙船の位置と速度、そして惑星の軌道(半径)と速度も知っています。

11
円の周りでユーザーフレンドリーな極座標運動を行うにはどうすればよいですか?
私は2Dゲームに取り組んでいます。このゲームでは、船で惑星に着陸し、船から出て歩き回ることができます。 これらの惑星は非常に小さく(時々350ピクセルの半径を考えてください)、横から見られます。そのため、一般的に画面上で惑星全体を簡単に見ることができます。 これはちょっと紛らわしいかもしれませんので、ここに写真を示します AキーとDキーを使用して、それぞれ反時計回りと時計回りに移動しています。問題は、惑星の「上」にいる場合(上半分)、これは理にかなっていることです。Aは左に移動し、Dは右に移動します。ただし、惑星の「下」にいる場合(下半分)、Aは右に移動し、Dは左に移動します。 これをよりユーザーフレンドリーにするためのアイデアはありますか?

3
ゲーム全体の変数を保存する最良の方法
難易度、解像度、フルスクリーンなどのオプション画面がありますが、実行時にこれらの変数を保存/取得する「最良の」方法を見つけるのに苦労しています。 現在、私Constantsはすべてを含むクラスを実装しましたGameOption列挙型が、これらのオプションすべてのデフォルトを選択するにはどうすればよいですか?また、現在選択されている列挙型を取得するにはどうすればよいですか? 解像度に関しては、具体的には、値を保存することにしましたが、デフォルト値または現在保存されている値を取得する方法がわかりません。どの方向も素晴らしいでしょう。ありがとう!:) namespace V1.test.RPG { public class GameOptions { public enum Difficulty { EASY, MEDIUM, HARD } public enum Sound { ON, QUIET, OFF } public enum Music { ON, QUIET, OFF } public enum ResolutionWidth { SMALL = 1280, MEDIUM = 1366, LARGE = 1920, WIDESCREEN = 2560 …
23 c#  2d 

2
「ダブルジャンプ」を正しく実装する
私はCoronaを使用して2D iPhoneゲームに取り組んでいます(試用版なので、フォーラムを使用できません)。このゲームでは、キャラクターが空を落ちていくので、私はキャラクターに「ダブルジャンプ」を実装しようとしています。私はコロナの物理ライブラリを使用してキャラクターを倒しましたが、これまでのところ、彼にジャンプさせる最良の方法は垂直インパルス法を使用することです object:applyLinearImpulse(0, -0.4, object.x, object.y) 私が直面している問題は、キャラクターが始まったばかりのとき(垂直速度が遅い)、彼は本当に高くジャンプし、しばらく落ちているとき(垂直速度が高い)、ジャンプは無視できることです。速度に関係なくジャンプを同じにするために、入力として速度を使用したある種の方程式を使用することが最善の解決策であると推測していますが、その方程式がどうなるかはわかりません。 さて、それで私の考えはすべてです。最後の質問は、物理学で二重ジャンプをどのように正確に実装するのですか?私の問題に適切な方程式はありますか?別のアプローチを取るべきですか?スマッシュブラザーズなどのゲームで以前に行われたことがありますので、再現可能なソリューションがありますよね?
23 2d  physics 

4
2Dスクリーン座標とデカルト座標の違いに対処する方法
ほとんどの2D画面/ビットマップ座標系には、下向きの正のY軸があります(原点は左上隅にあります)。 これは、正のY軸を上に向けて(原点を中心に)ほとんどの人が幾何学的に考える方法とは逆です。 ほとんどのゲームは、2つの異なる2D座標系をどのように管理しますか?座標には主に2つのタイプ(画面とデカルト)がありますが、スプライト空間、ワールド空間、ビュー空間、画面空間など、さまざまな座標空間があります。 バックグラウンド: 私はもともと、ゲーム内の世界座標を2Dスクリーン座標規則に一致させました。これにより、グラフィックス描画ルーチンを使用することは非常に自然になりましたが、atan2()などの三角関数を使用すると微妙な問題が発生しました。atan2()が正のy軸が上を向いていると想定するため、atan2()2Dスクリーン座標の供給結果は非常に紛らわしいです。 そこで、世界座標を古典的なデカルト座標系(画面の左下に原点がある)に変更しました。atan2()を使用した推論ははるかに簡単ですが、現在では他の種類の推論を行うことが難しくなっています。 ここで画面をクリックすると、その下にあるスプライトは何ですか? そのスプライトはどこでクリックしましたか? スプライトが間違った位置に描画された場合、間違って計算されたものは何ですか?画面座標または世界座標? 画面からデカルト座標への変換では、両方の(x、y)値のオプションの変換を使用して、y値を-1でスケーリングするだけです。ゲームデザインのベストプラクティスにもっと興味があります。 ほとんどのゲームは、単に画面座標の規則に固執し、atan2()のようなものがどのように機能するかについての考え方を変えますか? 座標系の変換はいつ/どのように行われますか?(マトリックス、OOP抽象化などを使用) スプライトの位置は、スプライトの中心または角の1つとして保存されていますか?「間違った」方向に進むスプライトの高さ/幅は、描画するときによくある問題のようです。 私の質問は主に2Dゲームに関するものですが、OpenGLはY軸が上を向く座標系を使用しているようです。OpenGLは、最終的にこれらの3D座標を2Dスクリーン座標系に投影する必要があります。おそらくいくつかのガイダンスはOpenGLの方法で見つけることができます...
23 2d  screen  coordinates 

4
2Dでのコーナーコリジョンの処理方法
トップダウンの2D XNAゲームを書いています。最初の頃から、物理学と衝突に関するものを自分で書いて、それを学習しようとしています。 プレーヤーのスプライトキャラクターが境界が壁の端と交差する位置に移動しようとするたびに、跳ね返り角度(入射角=反射の角度)を計算し、プレーヤーを壁から跳ね返して衝突を回避します。 角に当たったとしても、スプライトが2つの壁のエッジと同時に交差する状況をどのように処理するかを考えるのに苦労しています。 私のコードでは現在、2つの壁のエッジが交差しているが、どちらのエッジが最初にヒットしたか、したがってどのエッジが跳ね返ったかはわかりません。 どのエッジを跳ね返すかを選択する数学的テストは何ですか?見てみるとわかりやすいですが、数学テストを理解するのに苦労しています。

2
Unityスプライトのunits to pixelプロパティは何に使用されますか?
2D開発用のUnityを学び始めています。 そのため、いくつかのスプライトをゲームにインポートしていますが、デフォルトではに「pixels to units」プロパティがあることに気づかずにはいられませんでした100。通常はに設定し1ます。この値を異なる値にする必要がある理由はあり1ますか?または、より一般的には、異なる複数のスプライトを持つ理由があります
22 2d  unity 

4
2D流体の作成に関する良い例は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 誰でもそれをC#またはC / C ++で共有する良い例、チュートリアル、またはスニペットがありますか?
22 2d  simulations 

6
楽しくてやりがいのあるマリオスタイルのプラットフォーマーレベルを設計するためのテクニックは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 8か月前に閉鎖されました。 マリオタイプのゲームを作るのに必要なものはすべて揃っています。挑戦的で楽しいレベルにするために、レベルをどのように設計するのか、私にはわかりません。任意のヒント? 敵を殺す唯一の方法は、敵に飛び乗ることです。そのため、ボスを作るのは難しいと思いました。最後のレベルを長くするつもりだった。これは悪い考えですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.