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

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

3
非整数の速度値-これを行うよりクリーンな方法はありますか?
多くの場合、ピクセルベースのゲームでキャラクターを動かすために、2.5などの速度値を使用します。ただし、衝突検出は一般的に私が行うとより困難になります。だから私はこのようなことをすることになります: moveX(2); if (ticks % 2 == 0) { // or if (moveTime % 2 == 0) moveX(1); } 私はそれを書く必要があるたびに内側にうんざりしますが、非整数の速度値でキャラクターを移動するよりクリーンな方法はありますか、これを永遠にやり続けるのですか?

1
符号付き距離フィールド(2D)をリアルタイムで高速に生成するにはどうすればよいですか?
で前の質問、それが署名した距離フィールドは、事前に計算実行時にロードされ、そこから使用することができることが示唆されました。 この質問の最後に(興味のある人のために)説明する理由のために、距離フィールドをリアルタイムで作成する必要があります。 面取り距離変換やボロノイ図近似ベースの変換(Pixeljunk Shooter dev guyによるこのプレゼンテーションで提案されている)の方法など、リアルタイム環境で実行可能なさまざまな方法に関する論文がいくつかありますが、私は(したがって、他の多くの人々と見なされる可能性があります)彼らは通常長く、大部分が数学で肥大化しており、説明はあまりアルゴリズム的ではないため、実際に使用するのは非常に困難です 距離フィールドをリアルタイムで(好ましくはGPU上で)作成するために、特に距離フィールドの品質を考慮して、どのアルゴリズムを提案しますか? 別の論文やスライドへのリンクとは対照的に、実際の説明/チュートリアルを探しているので、この質問は1つに適格になると賞金を受け取ります:-)。 リアルタイムで実行する必要がある理由は次のとおりです。 大規模な2D環境用にこれらのSDFを事前計算する必要がある場合(大規模なTerrariaのようなマップの場合)、これは、ストレージスペース(およびマップ生成時間)のかなり大きなオーバーヘッドを受け入れ、より多くのリアルタイムのSDF生成に十分高速な複雑なアルゴリズム。 たとえば、タイルサイズが10 * 10ピクセルで1000 * 256(幅*高さ)の比較的小さなマップで、合計サイズが10000 * 2560ピクセルの場合、比較的小さなサイズを選択すると、すでに約2メガバイトのサイズがかかります。 0〜255の距離値のみを保存すると仮定すると、128x128のSDF解像度。 明らかに、これはすぐに大きくなりすぎる可能性があり、私が望んでいないオーバーヘッドです。 他にも何かあります: SDFは(衝突検出など)多くのことに使用でき、いくつかの有用なアプリケーションは潜在的にまだ発見されていません。多くの人が将来これらのことを探すと思います。ここで包括的な答えが得られれば、私たちは多くの人を助けると思います。


9
スプライトの周りにアウトラインを描く効率的な方法
私はXNAを使用してゲームをプログラムしており、スプライトで「選択された」効果を実現するためのさまざまな方法を試しています。私が抱えている問題は、スプライトバッチに描画される各クリック可能オブジェクトが複数のスプライトを使用して描画されることです(各オブジェクトは最大6つのスプライトで構成できます)。 Xピクセルのスプライトにアウトラインを追加する方法を教えていただければ幸いです(アウトラインの幅はピクセルのさまざまな数になります)。 前もって感謝します、 グレッグ。
21 2d  xna  sprites 

2
カメラ/ビューポートを2Dゲームに実装する
カメラ/ビューポートを2Dゲームに実装する最も実用的な方法は何ですか? 画面を基準とした位置ではなく、オブジェクトの世界の位置を保存する必要があることを読みましたか? 現在の状況: XMLファイルからオブジェクトとレベルを読み込む単純な2Dゲームを実装しました。現在、レベルXMLファイルは次のようになっています。 <map> <tile obj="ground" x="0" y="555" /> <tile obj="ground" x="16" y="555" /> <tile obj="ground" x="32" y="555" /> ... </map> すべてのオブジェクトには、画面上の現在の場所を格納する2Dベクトル「位置」があります。 私が望むもの: 写真の中の: カメラは800x600または640x480です ブロックとスプライトは16x16ピクセルです。 世界のサイズは異なる場合があります 座標はおそらく画面ではなく世界に対して正規化されるべきでしょうか? プレーヤーのx、yに対するビューポートの位置。プレーヤーがカメラのデッドゾーンに到達したときに移動します(このビデオと同様)。 私は擬似的な例/記事を求めていますが、開発に使用しているものを知る必要がある場合:SDL&C / C ++。
20 c++  2d  architecture  camera 

4
流体と気体をモデル化できる2D物理エンジンはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 この時点で、プラットフォームとプログラミング言語は関係ありません。このために何かが存在するかどうかを知りたいだけです。どんな助けも大歓迎です。
20 2d  physics 

3
芸術的(2D)ツリーをリアルタイム(L-System?)で手続き(作成)する方法
最近、L-systemモジュールをプログラムしました。さらに興味を持ちました。私はPlants vs Zombies junkieでもあり、Tree of Wisdomのコンセプトが本当に好きでした。楽しみのためだけに、同様の手続き型アートを作成して、もっと学びたいです。 質問:アーティスティックツリー(おそらく固定カメラ/視点の2D)を動的に作成するプロセスにどのようにアプローチすればよいですか? 理想的には、植物(葉のある茎のみ)から始め、その構造に対する何らかの影響(入力/ユーザーアクション)を使用して動的に成長させたいと考えています。これらの影響により、さまざまな種類の分岐、分岐の曲線、その広がり、果実の位置、花の色などが生じる可能性があります。:) 植物対ゾンビ:知恵の 木似たような木を動的に成長させるのは素晴らしいことですが、より多くのバリエーションとアニメーションが発生します。 私の経歴:プログラマー、いくつかのゲームエンジン(Ogre3d、cocos2d、unity)を使用しました。実際にopenGLを使用して直接プログラミングしておらず、それを修正しようとしています:)。 かなりの時間を費やす準備ができています。APIについて教えてください。そして、あなたのような専門家はこの問題にどのように取り組むでしょうか? なぜ2Dなのか?2次元のみを考慮して問題を解決する方が簡単だと思います。 芸術的インスピレーション: 果物と葉のある木だけで、下部に低木はありません 大きな木の猿の背後に左に(目に見える枝、緑の葉、花、果物など)、。 PixelJunk's Eden(アートスタイルのインスピレーション)。 フラクタルを使用して手続き的に生成されたアップルツリー あなたが質問を理解するのが簡単だったならば、私に知らせてください、私はさらに詳しく説明するかもしれません。 さまざまなアプローチの議論がすべての人に役立つことを願っています。あなたたちは素晴らしいです。

7
2Dゲームをプログラミングする最も簡単で楽しい方法は?フラッシュ?XNA?他のエンジン?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 これは、趣味のゲームプログラマーがゲームを作る自由な時間を甘くするための最も楽しい方法についての私の検索を詳述する投稿です。 私の要件: 最初にFlashを見て、いくつかの小さなゲームを作成しましたが、パフォーマンスには疑問があります。数百のユニットが同時に戦闘し、爆発とアニメーションを含む、かなり大きな戦略ゲームを作りたいです。また、ズーム可能なマップ。AdobeにはFlash用の新しい3D APIがあることがわかりましたが、2Dのパフォーマンスが向上するかどうかはわかりません。MAX10セッションでその質問に関連するものは見つかりませんでした。Flashは大規模な2Dゲームを簡単に作成するための優れた技術だと思いますか?私はActionscriptが大好きで、Flashのすべてがとても簡単です。さらに簡単にするエンジンがいくつかあります。 私はただ楽しみのためにこれを行いますが、適切なアニメーション/パーティクルエディタが利用でき、使用するエンジンが複数のプラットフォームで利用可能であればさらに良いでしょう。(したがって、より多くの人が私のゲームをプレイできます)。多くのモバイルプラットフォームでも利用できるようにしたいと思います。(何らかの理由でタッチ入力が大好きだから) XNAフレームワークはかなりよく知っていますが、使用できる適切なエンジンはなく、Windowsでのみ実行されます。これは大きなターンオフです。さらに大きいのは、誰かにゲームを提供するたびにXNA再頒布可能パッケージをインストールする必要があるということです。XNAを使用する場合、すべてのツールを自分で作成する必要があり、おそらくWPFで作成する必要があります。(Adobe AIRでツールを作成したいのですが、残念なことに、画像操作などのAPIはXNA / WPFよりもFlashの方がはるかに悪いです。)これらのプラットフォームのそれぞれをサポートしていますが、率直に言って、APIをすり抜けるのは面倒です。結局、エンジンではなくゲームを作りたいです。 質問は次のようになります:2D開発に使用できるクロスプラットフォーム(無料または開発無料)エンジンが利用可能か 私は好む:C#、Actionscript。ツールセットが平均以上であればc ++を使用しても構いませんが、そのようなものが存在することは非常に疑わしいです。間違っていることを証明してください:)だから要約:Flashを使用したいのですが、十分に拡張できるかどうかわかりません。私はスクリプト作成者ではありません。適切なIDE内で作業できる実際のAPIが必要です。 情報を得るためだけに、いくつかの選択肢を検討しましたが、実際にはすでに長い間探しています。あなたは最終的に決定を下すために私をたくさん助けてくれるでしょう。 機能的にはFlatredballエンジンが理想的です。しかし、私は彼らのツールを試しましたが、率直に言って、それらは恐ろしいものです。絶対に使えないので、自分で作る必要があります。私は彼らのAPIを見ていませんでしたが、もし彼らのツールが非常に悪いのであれば、私はこれ以上調べるつもりはありません。 Unity3D。これは非常に素晴らしいですが、私は本当に3Dを必要としません、そして、それは非常に...学ぶべき多くの仕事です。また、さまざまなプラットフォームで使用するのが非常に高価であり、スクリプトでしかコーディングできないことも気に入らない。各プラットフォームを個別に購入する必要があります。編集者の使いやすさは平均的で、製品全体はほとんどの目的に十分ですが、自分で学習するのはやり過ぎです。 シヴァ3D。十分に見えますが、繰り返しますが、3Dは本当に必要ありません。私の意見では、エディターの使いやすさはUnity3Dより少し悪く、プログラミングを開始する方法が明確ではありませんでした。コーディングにはC ++が必要だと思うので、それもマイナスです。私は楽しみたいです、そしてc#は楽しいです;) SDL。率直に言って、私はまだこれらすべての異なるSDL実装に移植する必要があります。また、OpenGLスタイルのプログラミングは好きではありません。また、C ++が必要です。使用可能なラッパーがあるかもしれませんが、ラッパーを使用するのは好きではありません。 不条理。多くの機能がありますが、サポートは低く、マニア向けです。C#バインディングは繰り返しドロップされます。私はエンジン愛好家ではありません。ゲームを作りたいだけです。Irrlichtでこれが発生することはありません。 Ogre3D。あまりにも多くの作業、それは単なるグラフィックエンジンです。また、複数プラットフォームのサポートとc ++もありません。 Torque2D。使用するには費用がかかりますが、サポートやドキュメントについての良いことはあまり聞いていません。プラットフォームごとに追加料金もかかります。
20 c#  2d  actionscript-3 

7
2Dゲームの場合、Direct3DやOpenGLなどの3D APIを使用しない理由はありますか?
私はかなり長い間趣味のゲーム開発から脱出しました。私がやったとき、ほとんどの人はDirect Drawを使って2Dゲームを作成していました。私がやめた頃には、人々は、OpenGLまたはDirect3Dを使用した正射影が正しい方法だと言っていました。 特に携帯電話だけでなく、XNAプラットフォームでも2Dゲームの作成に戻ることを考えています。OpenGLを使用して何かを作成するには、3D開発に慣れるための(理想的には)小さな学習曲線が必要です。 それをスキップして、代わりにピクセルで塗りつぶす必要がある幅x高さのフレームバッファーがある2Dフレームワークで動作する理由はありますか?
20 2d  opengl  directx 

7
2Dプラットフォーマーでプレイヤーが押しつぶされていることを検出するにはどうすればよいですか?
#1に示すように、プラットフォーマーキャラクターの衝突をチェックしています。赤い点はチェックされるピクセルで、灰色の線はそれらが関係する軸を示します。この方法で衝突をチェックすることで得られる結果が気に入っています(たとえば、バウンディングボックスに対して)。クラッシュ検出という1つの問題を除いて、すべてが希望どおりに機能します。 次の画像では、水色のボックスは地面を表し、オレンジ色のボックスはオブジェクトを表し、矢印は移動の方向を示します。 プレイヤーが押しつぶされたときを検出する簡単な解決策は、反対側の衝突ポイントが両方ともトリガーしているかどうかを確認することです。もしそうなら、プレイヤーは粉砕されています。#2では、通常のクラッシュシナリオを見ることができます。プレーヤーは接地され、上部の衝突点は落下オブジェクトと交差します。これはクラッシュを引き起こします。 #3、4、および5は、問題のあるシナリオを示しています。#3では、プレーヤーはオブジェクトに向かって移動し、オブジェクトは上に移動します。右側の衝突点がオブジェクトに当たり、衝突を引き起こしてプレイヤーを停止させます。 これで、オブジェクトが上に移動し続け、プレイヤーが右に移動し続けると(#4に示すように)、オブジェクトはプレイヤーの右側の衝突点をクリアし、プレイヤーは右に移動します。しかし、今では、オブジェクトが上部の衝突点と交差しているため、不要な垂直クラッシュが発生しています。 同様のシナリオを#5に示します。2つのオブジェクトは、下部の衝突点をクリアするのに十分離れているため、プレーヤーは落下できますが、側面の衝突点がクリアされるまではできず、不要な水平クラッシュが発生します。 私は解決策に頭を悩ませてきましたが、私が思いついたものは何も特にうまくいきませんでした。 混乱を解消するために、赤い衝突点はスプライト内にあり、灰色の線は各衝突点に関連する軸を示すためにのみ使用されていました。たとえば、キャラクターのスプライトが単純な緑の正方形の場合、衝突点は次のようになります。

2
UnityのSpriteクラスとTexture2Dクラスの違いは何ですか?
UnityにはTexture2DクラスとSprite(関連するSpriteRenderer)の両方があります。これら2つのクラスの違いは何ですか?どちらも画像を表します。2Dゲームの場合、どちらを優先する必要がありますか 使用Spriteしている「ビルボード」クワッドを自分で作成する必要がないという2つの主な違いはありますか?そして、それSpriteは常にカメラに対して直接レンダリングされますか?
19 2d  unity 

1
どの機能がエンジンに属し、どの機能がゲームに属しますか?
現在、2Dゲームエンジンの新しい機能を直接エンジンにコーディングして実装し、テストしています。同時に、スクリプト機能を備えたショーケースゲームがあり、エンジン機能を呼び出す必要があります。たとえば、ゲーム専用にスクリプトを作成するのではなく、固定タイルの動きをエンジンのEntityクラスに添付します。これは、複数のゲームに使用される一般的なエンジンのアイデアを間違いなく壊しています。 適切な部分(エンジンとゲーム)の正しい実装に焦点を当て続けるベストプラクティスはありますか?

3
ゲーム内でランダムに湖や川を生成するにはどうすればよいですか?
2Dブロックビルディングゲームがあり、ランダムに生成された湖や川を作ろうとしています。Perlinノイズアルゴリズムを調べましたが、ランダムで素晴らしい結果を生成することができませんでした。 私はpythonノイズライブラリを使用しようとしましたが、マップをあまりランダムに作成しませんでした。 よりランダムにするために、そのライブラリに欠けているシード関数がありますか?よりランダムにしたい場合、どの変数を変更しますか?可能であれば、数学とPythonの用語を減らして、技術的な答えを減らしてください。 マップは2Dタイルマップです。他のアルゴリズムの非ランダム性の例を次に示します。次のコードは3回連続で出力されました。私は次のようなものでオクターブと周波数をランダム化していました:freq = 16.0 * random.randint(1, 500000) * 0.000001 + 0.5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 …

6
シームレスなタイルマップレンダリング(境界のない隣接画像)
タイルセットイメージからタイルを描画してタイルマップを描画する2Dゲームエンジンがあります。デフォルトでは、OpenGLはテクスチャのGL_REPEAT一部()ではなくテクスチャ全体のみをラップできるため、各タイルは個別のテクスチャに分割されます。次に、同じタイルの領域が互いに隣接してレンダリングされます。意図したとおりに動作しているときの外観は次のとおりです。 ただし、分数スケーリングを導入するとすぐに、継ぎ目が表示されます。 なぜこれが起こるのですか?これは、四角形の境界線をブレンドする線形フィルタリングによるものだと思いましたが、それでもポイントフィルタリングでは発生します。私がこれまでに見つけた唯一の解決策は、すべての位置決めとスケーリングが整数値でのみ発生するようにし、ポイントフィルタリングを使用することです。これにより、ゲームの視覚的品質が低下する可能性があります(特に、サブピクセルの配置が機能しなくなるため、動きがそれほど滑らかになりません)。 私が試した/考えたこと: アンチエイリアスは、継ぎ目を減らしますが、完全に排除しません ミップマッピングをオフにしても効果はありません 各タイルを個別にレンダリングし、1ピクセルずつエッジを押し出します-しかし、これは最適化されていません。タイルの領域を一度にレンダリングできなくなり、透明領域のエッジに沿って他のアーティファクトを作成するためです。 ソース画像の周囲に1pxの境界線を追加し、最後のピクセルを繰り返します-しかし、それらは2のべき乗ではなくなり、NPOTサポートのないシステムとの互換性の問題を引き起こします タイル化された画像を処理するためのカスタムシェーダーを記述しますが、それではどうしますか?GL_REPEAT境界で画像の反対側からピクセルをつかみ、透明度を選択しないでください。 ジオメトリは正確に隣接しているため、浮動小数点の丸め誤差はありません。 フラグメントシェーダーが同じ色を返すようにハードコーディングされている場合、縫い目は消えます。 テクスチャに設定されている場合GL_CLAMPの代わりにGL_REPEAT、継ぎ目が消え(レンダリングが間違っているが)。 テクスチャがに設​​定されているGL_MIRRORED_REPEAT場合、縫い目は消えます(ただし、レンダリングは再び間違っています)。 背景を赤にしても、縫い目は白のままです。これは、透明ではなく、どこかから不透明な白をサンプリングしていることを示唆しています。 そのため、シームGL_REPEATは設定されている場合にのみ表示されます。このモードでのみ何らかの理由で、ジオメトリの端にブリード/漏れ/透明度があります。それはどうですか?テクスチャ全体が不透明です。

2
タイルグリッドのナビゲーションメッシュを生成するにはどうすればよいですか?
私はまだ実際にこのプログラムのプログラミングを開始していませんが、とにかくこれをどのように実行するかを知りたかったのです。 タイルのグリッドがあり、すべて同じサイズで、一部は通過可能で、一部はそうではないとします。このグリッドからポリゴンのナビゲーションメッシュを作成するにはどうすればよいですか? 私のアイデアは、通過不可能なタイルを取り出して、そこからラインを延長してポリゴンを作成することでした...これまでのところ、これで終わりです。何かアドバイス?

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