Roblox Battle Royale bietet ein Baussystem, mit dem Benutzer ihre eigenen Strukturen erstellen können, um höher aufzusteigen für einen besseren Schusswinkel oder um im Kampf Schutz zu bieten. Mit einem Menü kann der Benutzer aus einer Reihe von verschiedenen Fliesentypen auswählen und sie in der Welt platzieren.
Um ein sauberes und strukturiertes System zu erhalten:
- Jede Fliese muss mit einer bestehenden Fliese verbunden werden oder mit dem Boden verbunden werden.
- Platziere alle Gebäudeziegel in einem Raster mit der Spielwelt, damit die Ziegel richtig verbunden sind und nicht überlappen.
Kachelzusammensetzung
Damit Benutzer neue Fliesen schnell und einfach aufbauen können, muss das Building-System verstehen, welche Fliesen miteinander verbunden sind und wo neue Fliesen auf dem Netzwerk platziert werden können.
Kacheln verwenden 3 Komponenten: das visuelle Asset, das als Objektverwendet wird, Informationen über den Raum, den die Kachel belegt in Bezug auf andere Weltobjekte und die Verbindungspunkte eines Kacheln, mit denen zusätzliche Kacheln an verfügbare Kanten angeschlossen werden können.
Asset
Ein Asset ist ein BasePart ( Part , MeshPart , usw.) in 2>ReplicatedStorage/BuildingSystem/Assets2> platziert, der das Aussehen der Kachel im Spiel darstellt. Dieser 5>Class.BasePart5> muss zwei Kinder haben:
- StartRotation — Ein NumberValue mit einer Value der Start rotation eines Kachel wenn ein Benutzer ihn in die Welt platziert.
Belegung
Die Gewährleistung, dass ein Kachel die richtige Position in einem Gitter-System belegt, ist wichtig und kann mit einer Bit-Maske erfolgen. Eine Bit-Maske repräsentiert den physischen Raum, den Kacheltyp in einer grundlegenden Sektion der Platzoder Zelle einnimmt. Jeder Kachel-Objekt/-Objekt kann
Bit-Index | Bedeutung |
---|---|
0 | Unterseite des Zells |
1 | Oberseite der Zelle |
2 | Rechte Gesicht der Zelle |
3 | Rückseite der Zelle |
4 | Linke Seite der Zelle |
5 | Vorderseite der Zelle |
6 | +X, –Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
7 | +X, +Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
8 | –X, –Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
9 | –X, +Y, +Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
10 | –X, –Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
11 | –X, +Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
12 | +X, –Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
13 | +X, +Y, –Z Octant der Zelle mit Ursprung in der Mitte der Zelle |
Konnektivität
Kacheln müssen miteinander verbunden werden, um eine Struktur zu erstellen. Sie können ein Bitmaske verwenden, das die Verbindung zwischen den Teile der Zelle/Kanten des Kacheltyps repräsentiert. Ein Baustein-Kachel/Objekt-Konnektivität wird durch eine Reihe von Verbindungspunkten, Bits, auf der Oberfläche einer Zelle dargestellt. Sie organisieren sich auf die folgende Weise auf den Gesichtern der Zelle:
Ein Building-System-Objekt wird als verbunden an ein anderes Building-System-Objekt im Netz angesehen, wenn es mindestens 2 Verbindungspunkte auf der Oberfläche einer Zelle teilt.
Erstellen neuer Fliesentypen
Um einen neuen eingebenzu erstellen:
Platziere das Asset in ReplicatedStorage/BuildingSystem/Assets . Denke daran, dass es ObjectType und StartingRotation Kinder wie definiert oben enthalten muss.
Definieren Sie die Besetzung und Verbindlichkeit für Ihren neuen Fliesentyp in ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :
Zum Beispiel wird der Wand- Fliesentyp als Folgendes dargestellt:
ObjectTypeConfigurations.Wall = {ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0}
Arbeiten mit Terrain
Wenn Sie eine Karte mit freien Formen Terrain erstellen möchten, die perfekt mit dem Baussystem ausgerichtet ist, empfehlen wir, dass Sie das Höhenkarte-Import-System verwenden, wie in Umwelt/Terrain beschrieben, und dass Sie die folgenden Details beachten:
Terrain in Roblox wird durch ein dreidimensionales Arrays von Voxeln repräsentiert, von denen jeder einen 4×4×4-Würfel in der Welt belegt. Aufgrund dessen verwendet Roblox Battle Royale ein Rasterzellen-Größe von 20×16×20, mit Wand- und Decken-Kacheln, die 20×16×1 studs sind und Fliesen und Terrain in der Größe 2
Jedes Pixel in deiner Höhenkarte-Bild sollte einen Geländevoxel in der X/Z -Ebene repräsentieren, so dass ein 5×5-Bereich in Pixeln ein Gebäude-System-Rasterzelle darstellt, die einen 20×20-Bereich abdeckt.
In deiner Höhenkarte-Bild stellen Sie sicher, dass der rote oder graue Kanalwert für jedes Pixel in der Höhe Ihres Gebäude-System-Gitterzells auf die Höhe Ihres Terrain-Oberflächens aufsteht, damit die Bodentile sauber auf dem Geländesitzen.
Wenn Sie Ihre Höhenkarte importieren, festlegen:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4