Comment créer un terrain de jeu 2D?

8

Le mois dernier, j'ai beaucoup expérimenté dans le développement de jeux en utilisant cocos2d pour l'iPhone, en particulier sur le déplacement et la modification des sprites. Cependant, les sommets et les polygones sont encore nouveaux pour moi.

J'ai développé un algorithme qui crée un ensemble de points. Je veux maintenant les utiliser pour créer mon terrain 2D. Voici à quoi ça ressemble quand je connecte les points en java, pour que vous puissiez avoir l'idée

Un graphique linéaire des points connectés

Les points sont reliés par des lignes. Cependant, un vrai terrain de jeu est une forme colorée ou avec une texture superposée, non? Par exemple:

Une image de terrain en jeu assez jolie

Comment pourrais-je utiliser mes points pour créer un tel terrain?

Jusqu'à présent, j'ai essayé de créer un tableau et de le remplir avec mes points. Je passe ce tableau à cette méthode

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

dessine un poligon donné un pointeur sur CGPoint coordiantes et le nombre de sommets mesurés en points. Le polygone peut être fermé ou ouvert

Cela dessine en fait une forme simple. Mais d'après l'image bleue, il semble qu'il n'y ait pas une forme mais plusieurs.

Veuillez partager vos connaissances sur la façon de créer un terrain de jeu 2D.

Mise à jour 03.06.2011

Sur la base des deux bonnes réponses que j'ai le résultat suivant

entrez la description de l'image ici

Perdu dans OWL
la source

Réponses:

5

La solution facile / naïve serait simplement de prendre vos points existants, et pour chaque point d'avoir un point correspondant qui est à la même position Y mais hors écran. À partir de là, créez votre polygone en prenant, disons, les points 0, 1, la paire de 1 et la paire de 0 et passez-le à votre méthode DrawPoly. Continuez ensuite avec (1, 2, 2 paires, 1 paire), etc.

Tetrad
la source
Y représente la hauteur. Je ne comprends pas comment cela peut être le même Y mais hors écran en même temps. Je veux dire que le X est hors écran ...? Je ne comprends pas ton idée.
Perdu dans OWL le
1
Remplacez ensuite Y par X. Ce ne sont que des points qui sont directs.
Tetrad
Les lignes de votre image mise à jour doivent pointer vers le bas. Pas entrecroisé.
Tetrad
Génial, j'ai compris. Voir ma mise à jour :)
Perdu dans OWL le
4

Je parcourirais votre tableau deux points à la fois, extrapolant deux autres points (en utilisant la valeur X pour chacun des deux et en faisant la valeur Y 0) pour vous donner le bas de votre forme. Passez ces quatre points dans ccDrawPoly () et répétez jusqu'à ce que vous manquiez de valeurs de tableau.

donc, si vous avez dit:

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...
Ren l'impur
la source