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

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

2
ポイントとサイズをいつ構造体として表す必要がありますか?
私の単純なRuby 2Dゲーム開発フレームワークの一部として、私のゲームオブジェクトには位置(xとyの値)とサイズ(幅と高さ)があります。 class MyGameObject attr_accessor :x attr_accessor :y attr_accessor :width attr_accessor :height ... 私が見た別のアプローチは、位置をPoint構造として扱い、サイズを構造として扱うことでしたSize: Point = Struct.new(:x, :y) Size = Struct.new(:width,:height) class MyGameObject attr_accessor :position # Point instance attr_accessor :size # Size instance ... 一部のフレームワークでは前者を使用します(GDX、Gosuなどだと思います)。他のユーザーは後者(cocos2d-iphone)を使用します。問題は、(ゲーム開発における)両方の動作の長所と短所が完全に明確ではないことです。一部のフレームワークが一方を選択し、もう一方を選択しない理由がわかりません。 考慮すべき重要な違いはありますか?

2
発射体の発射角度を見つけるにはどうすればよいですか?
ユニットがお互いに矢を発射する2Dゲームを作成しています。私は射手と標的の位置と発射体の初速度を知っています。投射物がターゲットに着地するために必要な角度を知りたいです。ターゲットは射手とは異なる高さにある可能性があります。 要約すると、v0、R、gがわかっているので、角度(または高さ)を見つける必要があります。 http://en.wikipedia.org/wiki/Projectile_motionを読みましたが、必要なものに関連するものが見つかりません。

2
レベルエディターで視差レイヤーを視覚化するにはどうすればよいですか?
Unityで2Dゲームを作成していますが、これはどの2Dゲームエンジンにも当てはまります。 正射投影カメラで多平面視差を実装する場合、背景レイヤーのスプライトをレイアウトし、それらが他のレイヤーのスプライトとどこに並ぶかを知ることは困難です。 私の最初の本能は、各レイヤーに1つずつ複数のカメラを使用し、背景レイヤーのカメラの移動速度を縮小することでした。これにより、すべての背景スプライトをフレームごとに移動する必要がなくなります。問題は、半分の速度で移動するレイヤーが、エディターで表示したときにメインレイヤーの半分のスペースを占めることです。そのため、ゲームをレイアウトするときにスプライトをどこに配置するかを知ることは困難です。レイヤー数を増やすと、問題は指数関数的に悪化します。 どうすればこれを回避できますか?エディターで作業しながら、レイヤーを意図した移動速度で逆スケーリングしてみました。これにより、すべての背景スプライトがメインレイヤーに対して正しい位置に配置されますが、ひどく歪んでいます。 視差の背景をテストするために、それを吸い上げて、エディターと実行中のゲームを常に切り替える必要がありますか?

2
レイキャスティングを使用して2Dグリッドに見通し線を実装するより効率的な方法は?
タイルの2Dグリッドと、見通し線を表す、プレーヤーの中心にある座標の近似球を考えます。目標は、障害物(つまり、壁)を超えた視線を遮断することです。 視野内の個々のセルが表示されているかどうかを判断するのは比較的簡単です。ブレゼンハムを使用して、プレーヤーからターゲットセルに光線をキャストします。プレーヤーとターゲットの間で重なっているセルの1つが障害物である場合、ターゲットセル見えません。 さて、私の最初の考えは、見通し内のすべてのグリッドセルを反復処理することでしたが、これは私には非効率的です。たとえば、プレーヤーが壁の隣に立っていて、壁の向こう側のセルが表示されていないと判断した場合、それ以降はレイのすべてのセルが非表示になると判断できます。 また、視野範囲の周囲に沿って各セルにレイをキャストし、各レイに沿って各セルを反復することも検討しましたが、一部のセルを複数回処理することになります。 これを行うより効率的な方法はありますか? 1ターンあたり50セルまで反復することは比較的軽量な計算ですが、私はスピードを求めています。目標は、自動再生で毎秒数ターンを循環できるようにすることです。だから、私がこれをもっと効率的にできるほど、より良いです。

5
ピンボールゲームの2D衝突検出
これまでのゲームでは、ボックスとの単純な2D衝突を使用してから、ピクセルレベルで衝突をチェックしました。 ほぼ多数のフレームでピンボールゲームを作成する場合、ボールは壁または別の表面に接触するため、別のアプローチはありますか?

1
ターンベースのJRPG戦闘システムアーキテクチャリソース
過去数か月間、SDLライブラリーを使用してC ++で2D JRPG(和風RPG)をプログラミングするのに忙しかった。探索モードは多かれ少なかれ行われます。今はバトルモードに取り組んでいます。 私は、古典的なターンベースのJRPG戦闘システムがどのように構成されているかに関するリソースを見つけることができませんでした。私が見つけるのは、損傷の公式についての議論です。私はグーグルを試し、gamedev.netのメッセージボードを検索し、C ++関連の質問をここでStack Exchangeでクロールしました。また、既存のオープンソースRPGのソースコードを読み取ってみましたが、なんらかのガイドがないと、干し草の山から針を見つけようとするようなものです。 D&Dなどの一連のルールは探していません。私は純粋にコードとオブジェクト構造の設計について話しています。戦闘システムは、メニューを使用してプレイヤーに入力を要求します。次に、ヒーローと敵がアクションを実行するときに、バトルターンが実行されます。 誰かが私を正しい方向に向けることができますか?前もって感謝します。
9 c++  2d  architecture  sdl  rpg 

7
著作権で保護されたスプライトをデモに使用できますか?
私は簡単な質問をして、みんなの意見を求めていました。 オンラインで投稿したい履歴書の2Dデモゲームを作成しています。私はプログラマーのポジションとして応募しているので、自分のアートはあまりありません。デモで1つまたは2つのレベルを作成するために、他のゲームのスプライトシートとタイルセットを使用することを計画しています。画面の下部にクレジットを表示し、これらのスプライトは自分のものではないことを述べます。 これは良い考えですか、それとも違法な意味で潜在的に「危険」かもしれませんか?

2
太陽の動きのための機能?
したがって、地平線に設定された太陽スプライト(x = 0、y = worldheight / 2)が与えられた場合、太陽を昇らせてから降らせる関数を考案しようとしています。 これを行う最良の方法はsin関数ですが、それを使用する方法はわかりません。 y = sin(x)を使用する場合、完全な曲線の場合、xの速度は一定であるのに対し、xは0からpiの範囲でなければなりません。 考えや提案はありますか? 編集:みんなありがとう!

1
スプライトをマウスの向きに設定
私はhtml5キャンバスゲームを構築しています。スプライトをマウスカーソルに向ける方法が必要です。スプライトのX座標とY座標、およびポインタのX座標とY座標があります。私が行き詰まっているのは、スプライトをポインターに向けるのに必要な数学だけです。それはすべて2Dの世界にあるので、あまりにも複雑になるとは思えませんが、私はこれについてはほとんど経験がありません。 また、この種のことについての記事/ブログ投稿への役立つリンクは素晴らしいです(特に2Dゲームプログラミング、特にJavaScriptではありません)。 追加するには、X位置とY位置を使用してカーソルに向かって自分を指す角度が必要であることに注意してください。 カーソルの座標を知るにはどうすればよいですか?
9 2d  html5  html-canvas 

3
マーチングスクエア:1つのソースフィールド内で複数の輪郭を見つける?
主に、これは数週間前の問題のフォローアップ質問ですが、これは実際の問題に適用しない一般的なアルゴリズムに関するものです。 アルゴリズムは基本的に、画像の左上から開始して、境界であるピクセルが見つかるまで、画像内のすべての行を検索します。疑似C ++の場合: int start = 0; for(int i=0; i<amount_of_pixels; ++i) { if(pixels[i] == border) { start = i; break; } } 1つが見つかると、マーチングスクエアアルゴリズムを開始し、ピクセルが属するオブジェクトの輪郭を見つけます。 私がこのようなものを持っているとしましょう: 白以外のすべてが境界です。 そして、最初のブロブの輪郭点を見つけました: 一般的なアルゴリズムについてはこれで終わりです。それは輪郭を見つけ、その仕事をしました。他の2つのblobに移動して、それらの輪郭も見つけるにはどうすればよいですか?
9 2d 


2
C ++ / SDLで2Dプラットフォーマーを作成する。チュートリアル/例/リソースを探しています[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 昨年休業。 C ++の経験は豊富ですが、ゲームプログラミングの経験はありません。この夏、私は学習体験のためにC ++ / SDLを使用して最初から2Dプラットフォーマーを作成する予定です。私は、始めるのに役立つできるだけ多くのリソースを探しています。良いソースコード、チュートリアル、なんでも。 私が見つけた最高のチュートリアルの1つは、故フロリアンハフスキーによる非アクティブなJump 'n' Run Devチュートリアルです。同様のチュートリアルはありますか?
9 c++  2d  sdl  platformer 

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

4
2Dプラットフォーマーの「時間制御」
プレイヤーがボタンを押してレベルを再開できる2Dプラットフォーマーを作成しています。前のキャラクターだけが同時にレベルを実行します。 他のゲームが以前にこれを行ったことを知っています。私が考えた方法は、ゲームキャラクターに一連のアクション(アイドル、ジャンプ、左歩くなど)を持たせ、それらのアクションの変化を検出してログインすることですゲーム時間と一緒のリスト。そのため、キャラクターが自分でレベルを再度実行する必要がある場合、適切なタイミングでアクションを変更してリストを確認できます。 これはそれを行うための最良の方法ですか?誰かこれについて何か経験がありますか? ありがとう。

3
2Dスターマップで境界線/州のエリアを生成するための適切なアルゴリズムは何ですか?
私は、それぞれが1つ以上の星系を所有している、異なる派閥/状態を示すかなり大きな2次元の星図を生成しようとしています。派閥の境界・エリアを自動で作成したいのですが。 アイデアは基本的にこのようなものから行くことです(ドットは2d平面上の星系を表し、色は派閥の所属です) これに このようなマップを生成することはかなり一般的な要件のように思われるので、私の実際の質問はこれです:示されているように状態領域を生成するための標準的なアルゴリズムはありますか?もしそうなら、私にそれらを指摘してもらえますか?そうでない場合、良いアルゴリズムを考えることができますか? アルゴリズムのパフォーマンスは私にとって主な関心事ではないので、生成するのが高速なマップよりも「きれいな」マップを使用したいと思います。この同様の質問は、いくつかの「整形」が必要であるにもかかわらず、おそらく私の問題に適用できるアプローチを提供します: グラフからマップを作成する方法 きれいに言うときの意味を説明しましょう。リンクされた質問の下部に、質問者は受け入れられた回答を実装した後の最終結果を提示します。ここでの最初の問題:ノード#6、#9、および#12の領域は非常に小さく、奇妙な形をしています。また、シャープなエッジの代わりに、滑らかで湾曲した外観を好むでしょう。 これまでに見たそれぞれの欠点/質問を含む、これまでの自分のアイデア: 各派閥の「凸包」ポリゴンを生成し、少し外側に拡張します。問題:凹面の特徴はありません。また、オーバーラップにはどのように対処しますか? ドットのボロノイグラフを生成し、隣接する異なる派閥のシステム間のボロノイポリゴンエッジを境界として使用します。問題:マップの端にある大きなポリゴン-それらを特定して修正するにはどうすればよいですか? ドットごとに固定サイズのポリゴンを生成し、単一のファクションのすべてのポリゴンを結合します(結果として、1つの大きく潜在的に複雑な「ファクションポリゴン」が生成されます)。次に、2つの派閥間の重複領域を調整するために何かを行います。問題:これを正確に行うにはどうすればよいですか?単純なプロセスではありません。3つ以上の派閥間で重複がある場合はどうなりますか? よろしくお願いします。 補遺:最初の2つの回答と問題を解決するためのそれぞれのアプローチを検討した後、上記の要件が不完全であることに気付きました。 私は、地図にまばらに人口の多いエリアがある可能性があることを追加する必要があります。これは、孤立した星または星のクラスターがある可能性があることを意味します。それらの各クラスターを、独自の隣接する色付きの領域で表示したいと思います。このようなもの: これには、クラスターを識別する最初のステップが必要であり、次に各クラスターに対して実際のアルゴリズムを実行する必要があることを理解しています。
9 2d  algorithm  maps 

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