¿Cómo crear un terreno de juego en 2D?

8

El mes pasado, experimenté mucho en el desarrollo de juegos usando cocos2d para iPhone, especialmente en mover y modificar sprites. Sin embargo, los vértices y los polígonos siguen siendo cosas nuevas para mí.

Desarrollé un algoritmo que crea un conjunto de puntos. Ahora quiero usarlos para crear mi terreno 2D. Así es como se ve cuando conecto los puntos en Java, para que pueda tener la idea

Un gráfico lineal de puntos conectados

Los puntos están conectados con líneas. Sin embargo, un terreno de juego real es una forma coloreada o con una textura superpuesta, ¿verdad? Por ejemplo:

Una imagen del terreno en el juego que se ve bonita

¿Cómo podría usar mis puntos para crear tal terreno?

Lo que intenté hasta ahora es que creé una matriz y la llené con mis puntos. Paso esta matriz a este método

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

dibuja un polígono dado un puntero a los coordinadores de CGPoint y el número de vértices medidos en puntos. El polígono puede estar cerrado o abierto.

Esto realmente dibuja una forma simple. Pero desde la imagen azul parece que no hay una forma sino muchas.

Comparte tus conocimientos sobre cómo crear un terreno de juego 2D.

Actualización 03.06.2011

Basado en las dos buenas respuestas tengo el siguiente resultado

ingrese la descripción de la imagen aquí

Perdido en OWL
fuente

Respuestas:

5

La solución fácil / ingenua sería simplemente tomar sus puntos existentes, y para cada punto tener un punto correspondiente que esté en la misma posición Y pero fuera de la pantalla. A partir de ahí, cree su polígono tomando, digamos, los puntos 0, 1, el par de 1 y el par de 0 y páselo a su método DrawPoly. Luego continúe con (1, 2, 2 pares, 1 par), etc.

Tétrada
fuente
Y representa la altura. No entiendo cómo puede ser la misma Y pero fuera de la pantalla al mismo tiempo. Quisiera decir que la X está fuera de la pantalla ...? No entiendo tu idea.
Perdido en OWL
1
Reemplace Y con X entonces. Son solo puntos que están directamente hacia abajo.
Tetrad
Las líneas en su imagen actualizada deben apuntar hacia abajo. No se entrecruza.
Tetrad
Genial, lo tengo. Ver mi actualización :)
Perdido en OWL
4

Recorrería su matriz dos puntos a la vez, extrapolando dos puntos más (usando el valor X para cada uno de los dos y haciendo que el valor Y sea 0) para darle la parte inferior de su forma. Pase esos cuatro puntos en ccDrawPoly () y repita hasta que se quede sin valores de matriz.

entonces, si has dicho:

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 el inmundo
fuente