Come viene memorizzato un quadrifoglio in un file?

1

Sto cercando di capire come sarebbe stata salvata una mappa 2D o 3D, e sto cercando di capire i quad alberi. Quindi, come è ogni nodo rappresentato da personaggi in un file e all'interno di quello è il prossimo?

Che aspetto avrebbe il file, se fosse solo un gruppo di personaggi? L'ordine in cui si trovano nel file indica nodi e nodi figlio?

Scusa se non è chiaro o non ha alcun senso.

    
posta Scott 17.03.2018 - 23:36
fonte

2 risposte

4

Il modo in cui i dati vengono archiviati dipende dal database o dal tipo di file che si sta utilizzando per i dati permanenti. Ciò che conta di più è il modo in cui i dati sono strutturati logicamente e che è possibile serializzare / deserializzare tra la memoria persistente e le strutture in memoria. Potresti voler leggere questo su gamedev stackexchange per maggiori informazioni su particolari modalità di memorizzazione delle informazioni di gioco.

    
risposta data 18.03.2018 - 00:09
fonte
1

Come per ogni struttura ricorsivamente composta, il modo più semplice, a mio parere, è ricorrere alla ricorsione. Ad esempio, è possibile pre-ordinare-attraversare l'albero, archiviando ciascun nodo in ogni passaggio (si dovrebbe aggiungere il nodo alla fine del file). Se il nodo ha una dimensione fissa (cioè una quantità fissa di proprietà con una dimensione fissa ciascuna), è piuttosto semplice (ricorda che il numero di bambini è una di queste proprietà!) Se la dimensione di un nodo può variare (ad esempio, delle proprietà è un array), è necessario utilizzare un meccanismo per sapere dove termina ciascuna proprietà (una soluzione ricorrente sta salvando la dimensione della proprietà prima del valore della proprietà, nonché qualsiasi dimensione di blocco o nodo).

Tuttavia, se hai bisogno di un approccio più complesso (come il paging o l'accesso casuale a un determinato nodo nel file), avrai bisogno di un approccio più complesso per salvare / caricare il quadrifoglio / albero / qualsiasi albero. E non c'è un proiettile d'argento per quello. Dovrai personalizzare una soluzione per le tue esigenze particolari.

    
risposta data 18.03.2018 - 00:58
fonte

Leggi altre domande sui tag