Domanda

Attualmente sto lavorando al progetto di dove le mappe del terreno 2D vengono salvate in un array unidimensionale. Ogni blocco nella mappa è indicizzato da coordinate XY. Quindi, per salvare la mappa in un array unidimensionale, ho usato il metodo dell'ordine di riga-Major (http://en.wikipedia.org/wiki/row-major_order) per convertire le coordinate XY in un singolo valore dell'indice (che mi ha permesso di mettere il blocco in un array).

Ora, il mio problema è come lo converto? Ho un numero univoco che devo convertire in coordinate XY. Qualsiasi aiuto sarebbe apprezzato. ^^

È stato utile?

Soluzione

Per calcolare gli indici dovresti usare qualcosa del genere:

index = X + Y * Width;

Quindi, per invertire questo puoi sfruttare il troncamento della divisione intera per ottenere y, e poi x è proprio ciò che è rimasto dopo ciò che Y "ha usato":

Y = (int)(index / Width)
X = index - (Y * Width)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top