2017-05-20 9 views
-3

Ich mache ein Spiel wie Minecraft und ich habe bereits Stücke, aber ich speichere diese Stücke derzeit in einem zweidimensionalen Array. So bleiben Chunks, die ich geladen habe, geladen und wenn ich auf einen Rahmen gehe, kann ich keine weiteren Chunks erzeugen, weil ich ein Array verwende.Wie speichert man Stücke in einer prozeduralen Welt?

Also meine Frage ist, wie kann ich meine Stücke speichern, um sie zu löschen, wenn sie zu weit von mir entfernt sind und sie laden, wenn ich in der Nähe von ihnen bin?

+0

Um es klar zu sagen: es klingt wie Sie fragen, wie Sie die Stücke speichern * im Speicher *, während sie geladen sind - nicht auf der Festplatte, wenn sie gespeichert werden. Richtig? – Wyzard

Antwort

1

Erstellen Sie eine Klasse, die diese In-Memory-Chunks verwaltet. Von allen realisierten Chunks verfolgt diese Klasse, wie viele geladen wurden, welche Chunks sie sind und wie kürzlich auf sie zugegriffen werden musste. Auf diese Weise können Sie, wenn ein neuer Chunk geladen werden muss (durch diese Klasse), & den Chunk löschen, der am wenigsten nützlich ist (nach Entfernung oder Zugriffszeit).

Auf diese Weise können automatisch speichert, prädiktiv Laden chuncks basierend auf curren Position & Geschwindigkeit usw.

jedoch hinzufügen, Sie wollen wahrscheinlich nur eine Arraylist.

Verwandte Themen