Durch chunk i bedeuten: 16x16x256 Array von Blöcken
Nun, die dann eine gewisse geometrische Struktur entzieht. Wenn dies ein Spiel von Micraft ist, dann ist entweder ein Block gefüllt oder er ist leer. Willst du, dass diese Blöcke von verschiedenen Typen sind, oder nur "da" oder "nicht da"?
Nehmen wir an, der Einfachheit halber wollen Sie 2^CHAR_BIT verschiedene Zustände für einen Block haben (CHAR_BIT ist 8 auf den meisten Systemen). Der Zustand 0 bedeutet leer. So können Sie diese Blöcke in einem Array der Struktur speichern
char chunk[16][16][256];
Sie können dies in einer Klasse kapseln.
class Chunk
{
private:
char chunk[16][16][256];
}
Natürlich Ihre Welt von mehr als einem Klumpen besteht, werden Sie wahrscheinlich Ihre Stücke in einem Raster anordnen, wobei jede Gitterzelle einen Chunk nimmt
class ChunkGrid
{
private:
std::list<Chunk> chunks;
Und für sicher, dass Sie auch wollen diese Chunks in einer räumlichen Unterteilung Struktur zu organisieren, so dass Sie schnell Brocken Index auf ihre Position in der Welt abhängig, arbeitet ein Octree wunderbar für die
class ChunkOctree
{
private:
union Fork
{
ChunkOctree *branch;
Chunk *leaf;
};
Fork forking[2][2][2];
}
Sie werde als Ich möchte, dass einige Funktionen diese Struktur durchqueren, aber ich überlasse die Forschung Ihnen als Lernerfahrung. Ich habe dir viele Schlüsselwörter gegeben, nach denen du die Interwebs durchsuchen kannst.
}
Nicht jeder hier in die Minecraft Codebasis gelesen hat, kann ein Stück alles von einem Stück Speicherpuffer zu einer geometrischen Struktur zu etwas völlig anders sein. Was ist der Brocken, auf den du dich beziehst? Was versuchst du zu machen. Was hast du bisher versucht? Können Sie uns Ihren nicht arbeitenden Code zeigen? – datenwolf
Ich habe keinen Code nicht arbeiten, weil ich nicht einmal verstehe, wie ich es tun sollte. – TheMorfeus
@datenwolf Ein Chunk ist im Zusammenhang mit Voxel Grafiken im Allgemeinen glaube ich nicht nur minecraft spezifischen –