2Dゲーム地形を作成する方法は?


8

先月、私はiPhoneにcocos2dを使用して、特にスプライトの移動と変更について、ゲーム開発で多くの実験を行いました。ただし、頂点とポリゴンはまだ新しいものです。

ポイントのセットを作成するアルゴリズムを開発しました。次に、それらを使用して2D地形を作成します。Javaでポイントを接続すると、次のようになります。これで、アイデアを得ることができます。

接続されたドットの折れ線グラフ

ポイントは線で結ばれています。しかし、実際のゲームの地形は、色が付いているか、テクスチャがオーバーレイされている形状ですよね?例えば:

きれいに見えるゲーム内の地形の画像

ポイントを使用してそのような地形を作成するにはどうすればよいですか?

これまでに試みたのは、配列を作成し、それを自分のポイントで埋めることです。この配列をこのメソッドに渡します

void ccDrawPoly ( const CGPoint *  vertices,
    NSUInteger  numOfVertices,
    BOOL  closePolygon   
)   

CGPoint座標へのポインタとポイントで測定された頂点の数を指定して、多角形を描画します。ポリゴンは閉じていても開いていてもかまいません

これは実際にはプレーンな形状を描画します。しかし、青い写真からは、1つの形状ではなく多くの形状があるように見えます。

2Dゲーム地形の作成方法に関する知識を共有してください。

アップデート03.06.2011

2つの良い答えに基づいて、私は次の結果を得ました

ここに画像の説明を入力してください

回答:


5

簡単で素朴な解決策は、単に既存のポイントを取得することであり、各ポイントに対して、同じY位置にあるが画面外にある対応するポイントがあります。そこから、たとえば、ポイント0、1、1のペア、0のペアを取得してポリゴンを作成し、それをDrawPolyメソッドに渡します。次に、(1、2、2のペア、1のペア)などを続けます。


Yは高さを表します。どのように同じYであるが同時に画面外であるかを理解できません。Xが画面から外れていることを意味します...?あなたの考えはわかりません。
OWL

1
YをXに置き換えます。それらは真っ直ぐなポイントに過ぎません。
Tetrad 2011年

更新された画像の線はまっすぐ下を向いている必要があります。交差しません。
Tetrad 2011年

わかりました。私の更新を参照してください:)
OWL

4

配列の2つのポイントを一度にループし、さらに2つのポイントを(2つのポイントのX値を使用し、Y値を0にして)外挿して、形状の下部を取得します。これらの4つのポイントをccDrawPoly()に渡し、配列の値がなくなるまで繰り返します。

だから、あなたが言うなら:

P1 = (0, 25)
P2 = (5, 30)
P3 = (10, 20)
P4 = (15, 25)
for the first shape, you pass in P1, P2, (0, 0), and (5, 0)
second shape is P2, P3, (5, 0), (10, 0)
third shape is P3, P4, (10, 0), (15, 0)
etc...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.