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

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

2
Java AWTは2Dゲームのレンダリングに適していますか?
[この質問の方が適していると指摘されたため、stackoverflowからこの質問を再投稿します。] 現在、2DゲームエンジンをJavaに移植しています。Stackoverflowでここで指摘されているゲームライブラリのいくつかを調べました。しかし、私が見たものはかなり単純化されており、アルファ透明度のようなものをサポートしているかどうかさえ述べていないため、ロジックをすでに記述しているC ++レンダラーを移植することにしました。 このレンダラーは、タイリングを使用して不要な再レンダリングを回避する純粋なソフトウェアレンダラーです。出力ペインより少し大きい「オフスクリーンバッファー」を作成し、このオフスクリーンバッファーをすべてのフレームの出力にブリットすることで、スクロールパフォーマンスを最適化しました。このようにして、マップ上でピクセルをスクロールしたからといって、タイルを不必要に再描画することを回避できました。 JavaのAWTを使用して実装し、オフスクリーンバッファーに大きなBufferedImageを使用しました。CPU使用率は問題ありません(C ++の約2倍です)が、連続スクロールに奇妙な問題があり、毎秒程度、レンダラーが約0.2秒間遅延します。 私のコードにはこれらの期間に発生するものはなく、オフスクリーンバッファーをメインビューに描画しないとスパイクがなくなるので、Javaが独自の内部最適化を行っていると結論付けることができます。ただし、それが何をするのかわかりません。また、スパイクを取り除くために削除する必要がある自分自身の最適化もわかりません。また、Java AWTは継続的で高FPSのスクロールを考慮して作成されたのではない可能性があり、この目的にはまったく使用できません。 これらのスパイクを取り除く方法はありますか?
8 2d  java 

3
2つの接続されたラインセグメントのちょうど中間にある単位ベクトルを見つける
素早く簡単な質問のようですが、私が探しているものを正確に見つけることができませんでした: 2つの接続されたラインセグメントの角度のちょうど50%であるラインに沿って指している単位長ベクトルを計算する方法は? 画像は何千もの言葉を話します(これは私の説明よりも優れています!) 基本的に、2つの赤い線分(実際には3つの点であり、したがって接続が保証されている)を前提として、青い単位ベクトルを計算します。 赤いセグメントは任意の長さであり、結果は単位である必要はありません。 結果のベクトルを特定の方向(入力セグメントに対して)にポイントさせる方法があると便利です。これは、これを解決できると思うので、必須ではありません-入力ラインセグメントが最終的に形成されるためです。 nゴン。 どんな例でもC ++では理想的ですが、他の言語も歓迎します。 ポインタに感謝します。
8 c++  2d  mathematics 

4
Android用のテトリスや怒っている鳥のような2Dゲームを開発するために利用できるツールは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 Android向けのテトリスやAngry Birdsのような2Dゲームの開発について、以下の質問をしたいと思います。 JavaはAndroidの公式開発言語ですか? 利用可能な無料または商用のAndroid開発環境(XcodeはiOS用など)はありますか? Androidでは、cocos2Dなどのオープンソースのゲーム開発エンジンを利用できますか? そのようなゲームを開発するために利用できる素晴らしいチュートリアルはありますか?
8 2d  android  ide 

2
android game-GCが起動しないようにゲーム要素を保存する方法
私はAndroidゲームを開発していますが、ガベージコレクターを起動せずにゲーム要素を保存することについて質問があります。 私のゲームには、x、yの位置に従ってゲーム要素が格納されているコレクションが必要です(すべてのゲーム要素には、x、y、幅、高さがあります)。次に、コレクションはフレームごとに呼び出され、cameraX、cameraY、カメラの幅と高さに従って要素を取得します(ユーザーはゲーム内をスクロールできます)。 例: function draw() { tmp = collection.getElements(tmp,cameraX,cameraY,cameraWidth,cameraHeight); for(int i = 0; i < tmp.size(); i++) { tmp.get(i).draw(); } } 現在、コレクション要素を表すためにVectorクラスを使用していますが、gcは数分おきに起動し続けます。私はすべての割り当てを前もって行います。また、getElements関数を変更して、もう1つのパラメーター-要素で埋められて返される一時ベクトル(前もって割り当てられている)を受け入れます。 GCが起動しないように、ゲーム要素をどのように保存すればよいですか(できれば、私はできません)。 実行時にコレクションにも要素を追加しますが、それらも事前に割り当てる必要がありますか?
8 2d  android 

2
2Dゲーム地形を作成する方法は?
先月、私はiPhoneにcocos2dを使用して、特にスプライトの移動と変更について、ゲーム開発で多くの実験を行いました。ただし、頂点とポリゴンはまだ新しいものです。 ポイントのセットを作成するアルゴリズムを開発しました。次に、それらを使用して2D地形を作成します。Javaでポイントを接続すると、次のようになります。これで、アイデアを得ることができます。 ポイントは線で結ばれています。しかし、実際のゲームの地形は、色が付いているか、テクスチャがオーバーレイされている形状ですよね?例えば: ポイントを使用してそのような地形を作成するにはどうすればよいですか? これまでに試みたのは、配列を作成し、それを自分のポイントで埋めることです。この配列をこのメソッドに渡します void ccDrawPoly ( const CGPoint * vertices, NSUInteger numOfVertices, BOOL closePolygon ) CGPoint座標へのポインタとポイントで測定された頂点の数を指定して、多角形を描画します。ポリゴンは閉じていても開いていてもかまいません これは実際にはプレーンな形状を描画します。しかし、青い写真からは、1つの形状ではなく多くの形状があるように見えます。 2Dゲーム地形の作成方法に関する知識を共有してください。 アップデート03.06.2011 2つの良い答えに基づいて、私は次の結果を得ました
8 2d  terrain 

1
オブジェクトを回転させてプレイヤーに向けます
これはおそらく単純なベクトルの質問ですが、どうすればよいかわかりません。 ベクターの位置にオブジェクトがあります(ox,oy)。可能性のあるすべての更新で、ユーザーは画面上を歩き回り(px,py)、いつでもその位置にいます。オブジェクトが常にプレーヤーに面するようにするにはどうすればよいですか?角度を度単位で取得する必要があります。 これは私がいじくり回してきたものですが、方向はすぐにユーザーがいる場所を指していません。代わりに、ユーザーが歩いている方向に徐々に増加します。 objVec.Normalize(); playerVec.Normalize(); obj.Rotation = MathHelper.ToDegrees((float)Math.Acos(Vector2.Dot(objVec, playerVec))); 私はそれが完全に間違っているかもしれないので、どんな助けでもありがたいです!

4
XNAでゲームエンジンを作成するための優れたリソースは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 私は現在、インディープロジェクトに取り組んでいる学生向けゲームプログラマーです。私たちには11人のチーム(5人のプログラマー、4人のアーティスト、2人のオーディオデザイナー)がおり、全員がこのゲームの設計を手助けしています。私たちはここ数か月間会議を行っており、これまでにかなりの数のオーディオ/ビジュアルコンセプトアートだけでなく、ゲームデザインドキュメントも刷新されています。私たちのプログラマーは私たち自身の側で進歩するのがむずむずしています。 プログラミングチームの各人はC ++に精通していますが、C#に精通しています。私たちには十分な経験とスキルがあり、ゲームで成功すると確信しています。XNAで独自のゲームエンジンを構築したいと考えています。 ゲーム自体は、Xbox LiveとPCでリリースされる2Dビートスタイルゲームです。プレイスタイルはキャッスルクラッシャーズやスコットピルグリムvsザワールドと似ています。ゲームエンジンを設計して、アセットをゲームに適切に実装できるようにするとともに、設計要素/機構の作成を簡略化したいと考えています。 現在、プログラマー同士の間に、「XNA 4.0」や「ゲームコーディングコンプリート、サードエディション」などの本がありますが、XNAと(特に)ゲームエンジンをゼロから構築する方法の両方について、さらに詳しい情報が必要です。ゲームエンジンをさらに詳細に計画してプログラムするために使用できる他の優れた書籍、ウェブサイト、またはリソースは何ですか?
8 xna  2d 

6
厳密に2Dゲームには法線が必要ですか?
純粋な2Dゲームを作成することでOpenGLを学び始めています。 頂点のフォーマットを決定する必要があります。通常のコンポーネントが必要ですか?それとも、2Dコンポーネントでは不要ですか? 私の直感は、すべてが平らなので必要ないだろうと言っています。しかし、おそらく私はいくつかのシェーダーや私がまだ見ないもののためにそれを必要としています。
8 opengl  2d  normals 

5
タイルベースの柔軟なエンジンの設計
宝石をちりばめた、文明、倉庫番などと同じように、あらゆる種類の非リアルタイムパズルゲームを作成するための柔軟なタイルベースのゲームエンジンを作成しようとしています。 私が最初に行ったアプローチは、Tileオブジェクトの2D配列を用意し、次にゲームオブジェクトを表すTileから継承するクラスを用意することでした。残念ながら、その方法では、3D配列がなければ、同じタイルにゲーム要素をさらに積み上げることができませんでした。 次に、別のことを行いました。Tileオブジェクトの2D配列はまだありましたが、すべてのTileオブジェクトには、配置したリストと異なるエンティティが含まれていました。これは、20分前まではうまくいきました。多くのことを行うにはコストがかかりすぎることに気付いたとき、次の例を見てください。 壁エンティティがあります。更新ごとに、隣接する8つのタイルをチェックし、次にタイルのリスト内のすべてのエンティティをチェックし、それらのエンティティのいずれかが壁であるかどうかをチェックし、最後に正しいスプライトを描画します。(これは、互いに隣接する壁をシームレスに描画するために行われます) 私が今見ている唯一の解決策は、あらゆる状況に適する可能性のある多くのレイヤーを備えた3Dアレイを持つことです。しかし、その方法では、同じタイル上の同じレイヤーを共有する2つのエンティティをスタックできません。やりたいときはいつでも、新しいレイヤーを作成する必要があります。 より良い解決策はありますか?あなたならどうしますか?
8 c#  2d  performance  tiles 

1
タイルベースの2D衝突検出の問題
このチュートリアルhttp://www.tonypa.pri.ee/tbw/tut05.htmlに従って、タイルベースの世界でリアルタイムの衝突を実装しようとしています。 これらのプロパティのおかげで、エンティティの中心座標がわかります。 public float CenterX { get { return X + Width / 2f; } set { X = value - Width / 2f; } } public float CenterY { get { return Y + Height / 2f; } set { Y = value - Height / 2f; } } …

1
2Dスケルタルアニメーションの変換
しばらくの間、2Dスケルトンアニメーションシステムを構築しようとしていましたが、仕上げにかなり近づいていると思います。現在、私は以下のデータ構造を持っています: struct Bone { Bone *parent; int child_count; Bone **children; double x, y; }; struct Vertex { double x, y; int bone_count; Bone **bones; double *weights; }; struct Mesh { int vertex_count; Vertex **vertices; Vertex **tex_coords; } Bone->xそしてBone->y骨の終点の座標です。開始点は(bone->parent->x, bone->parent->y)またはによって指定され(0, 0)ます。ゲームの各エンティティにはがありMesh、Mesh->verticesエンティティの境界領域として使用されます。Mesh->tex_coordsテクスチャ座標です。エンティティの更新関数では、の位置をBone使用しVerticesて、それにバインドされているの座標を変更します。現在私が持っているのは: void Mesh_update(Mesh *mesh) { int i, j; double sx, sy; …

5
非常に大きなゆっくり回転する惑星を描く
ゆっくりと回転する惑星の非常に大きな(500ピクセル以下)グラフィックを描画したいと思います。これらのグラフィックは印象的なものです。これを行う最良の方法は何ですか?私は特定の3Dエンジンの経験がなく、このゲームがどのプラットフォームで動作するかさえわかりません。 各フレームを事前にレンダリングすることもできましたが、500pxで10秒の回転周期で、これは惑星ごとに途方もない量のデータです。 3Dエンジンを使用して、惑星のテクスチャを球に近づくメッシュにマッピングすることができますが、500pxでは、見栄えをよくするためにポリゴン数が膨大になる必要があるのではないかと心配しています。 各ビューピクセルのx / y座標を球のテクスチャの座標空間に変換することで、テクスチャ球を効率的にレンダリングするだけの一種のカスタム3Dエンジンを書くことができますが、これは複雑であり、メリットを得ることができませんでしたグラフィックアクセラレーション。 私が考えていない他の何か? ここに私が何を意味するかのアニメーションGIFの例があります。(100x100 pxと60フレームで、それはすでにかなり巨大です、申し訳ありません。)これだけ、非常に大きく、非常にゆっくり回転し、よりスムーズにアニメートされることを想像してください。 ただし、これが500x500ピクセルで10 x 25 = 250フレームの場合、数百MBのデータについて話しているため、この単純なアプローチは機能しません。

3
2Dトップダウンビューマップ
これがどのように機能するのか疑問に思いました。 あなたはロードするか、完全なゲームの起動時にマップを、または実行時にマップの部分をロードするのですか? そして、どのように地図を保存しますか?XMLか、それともバイナリ形式ですか? ありがとう!
8 2d  tiles  sprites  maps 

4
2Dプラットフォーマーの衝突処理
2Dプラットフォーマー(マリオタイプ)ゲームを作成しようとしていますが、衝突の適切な処理に問題があります。私はこのゲームをC ++で書いており、入力、画像の読み込み、フォントの読み込みなどにSDLを使用しています。また、グラフィックを表示するためにSDLと組み合わせてFreeGLUTライブラリを介してOpenGLを使用しています。 私の衝突検出方法は、AABB(Axis-Aligned Bounding Box)です。必要なのは、衝突が発生した側を検出し、衝突を適切に処理する簡単な方法です。したがって、基本的に、プレーヤーがプラットフォームの上部に衝突した場合は、プレーヤーを上部に移動します。側面に衝突がある場合は、プレーヤーをオブジェクトの側面に戻します。底に衝突がある場合は、プラットフォームの下にプレーヤーを再配置してください。 私が試してみました多く、このような浸透深さを見つけようと侵入深さによって後方プレーヤーを再配置するようにこれを行うためのさまざまな方法を、。残念ながら、私が試したことは何も正しく動作していないようです。プレイヤーの動きが非常にグリッチになり、望まないときにプレイヤーの位置を変えます。その理由の1つは、おそらくこれはとても単純なものだと思っているためですが、考えすぎています。 誰かが彼らが助けることができると思っている場合は、以下のコードを見て、可能であればこれを改善するのを助けてください。これを処理するためにライブラリを使用しないでください(自分で学びたいので)、または可能であればSAT(分離軸定理)のようなものを使用しません。よろしくお願いします! void world1Level1CollisionDetection() { for(int i; i < blocks; i++) { if (de2dCheckCollision(ball,block[i],0.0f,0.0f)==true) { de2dObj ballPrev; ballPrev.coords[0] = ball.coords[0]; ballPrev.coords[1] = ball.coords[1]; ballPrev.coords[2] = ball.coords[2]; ballPrev.coords[3] = ball.coords[3]; ballPrev.coords[0] -= ball.xspeed; ballPrev.coords[1] -= ball.yspeed; ballPrev.coords[2] -= ball.xspeed; ballPrev.coords[3] -= ball.yspeed; int up = 0; …

5
シェーダーを使用せずにOpenGLで2Dゲームのオブジェクトをぼかす方法はありますか?
OpenGLでシェーダーを使用せずにオブジェクトをぼかす良い方法はありますか? 現在、ぼかしは、オブジェクトを元の位置からわずかに上、下、左、右、および4つの対角線としてレンダリングすることで実現しています。これを行うにはもっと良い方法があるはずです。2Dシーンで作業しています。
8 2d  graphics  opengl 

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