Come creare terreno di gioco 2D?


8

Il mese scorso, ho sperimentato molto nello sviluppo di giochi usando cocos2d per iPhone, in particolare spostando e modificando gli sprite. Tuttavia, vertici e poligoni sono ancora cose nuove per me.

Ho sviluppato un algoritmo che crea una serie di punti. Ora voglio usarli per creare il mio terreno 2D. Ecco come appare quando collego i punti in Java, in modo che tu possa avere l'idea

Un grafico a linee di punti collegati

I punti sono collegati con linee. Tuttavia, un vero terreno di gioco è una forma colorata o con una trama sovrapposta, giusto? Per esempio:

Un'immagine del terreno di gioco che sembra carina

Come potrei usare i miei punti per creare un terreno del genere?

Quello che ho provato finora è che ho creato un array e riempito con i miei punti. Passo questo array a questo metodo

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

disegna un poligono dato un puntatore alle coordinate di CGPoint e al numero di vertici misurato in punti. Il poligono può essere chiuso o aperto

Questo in realtà disegna una forma semplice. Ma dall'immagine blu sembra che non ci sia una forma ma molte.

Ti preghiamo di condividere le tue conoscenze su come creare terreno di gioco in 2D.

Aggiornamento 03.06.2011

Sulla base delle due buone risposte ho il seguente risultato

inserisci qui la descrizione dell'immagine

Risposte:


5

La soluzione facile / ingenua sarebbe semplicemente quella di prendere i punti esistenti e per ogni punto avere un punto corrispondente che si trova nella stessa posizione Y ma fuori dallo schermo. Da lì, crea il tuo poligono prendendo, diciamo, i punti 0, 1, la coppia di 1 e la coppia di 0 e passala al tuo metodo DrawPoly. Quindi continua con (1, 2, coppia di 2, coppia di 1), ecc.


Y rappresenta l'altezza. Non capisco come possa essere la stessa Y ma fuori schermo allo stesso tempo. Vorrei dire che la X è fuori dallo schermo ...? Non ho idea.
Perso in GUFO il

1
Sostituisci Y con X quindi. Sono solo punti dritti verso il basso.
Tetrad,

Le linee nell'immagine aggiornata devono essere rivolte verso il basso. Non incrociato.
Tetrad,

Ottimo, capito. Vedi il mio aggiornamento :)
Perso in GUFO il

4

Vorrei scorrere il tuo array di due punti alla volta, estrapolando altri due punti (usando il valore X per ciascuno dei due e rendendo il valore Y 0) per darti il ​​fondo della tua forma. Passare quei quattro punti in ccDrawPoly () e ripetere fino a quando non si esauriscono i valori dell'array.

quindi, se hai detto:

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...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.