Roblox Battle Royale, kullanıcıların kendi yapılarını inşa etmelerine izin veren bir inşa sistemine sahiptir, böylece daha iyi bir atış açısına ulaşmak veya savaş sırasında koruma sağlamak için.Bir menü kullanarak, kullanıcı bir dizi farklı karo türünden seçim yapabilir ve bunları dünyaya yerleştirebilir.

Düzenli ve yapılandırılmış bir sistem korumak için:
- Her kare başka bir mevcut kareye veya zemine bağlanmalıdır.
- Bütün bina taşlarını oyun dünyasıyla koordine edilmiş bir ızgaraya yerleştirin, böylece taşlar doğru bir şekilde bağlanır ve üst üste gelmez.
Kare kompozisyonu
Kullanıcıların yeni kuleleri hızlı ve kolay bir şekilde inşa etmesi için, inşaat sisteminin hangi kulelerin birbirine bağlı olduğunu ve yeni kulelerin kaç tanesinin ızgaraya yerleştirilebileceğini anlaması gerekir.
Kareler 3 bileşen kullanır: kare nesnesi olarak kullanılan görsel varlık, diğer dünya nesnelerine ilişkin boşluk alanı ve kullanılabilir kenarlara ekstra karelerin bağlanmasına izin veren bağlantı noktaları.
Varlık
Bir varlık, oyun dünyasındaki kareye benzeyen şeyi temsil eden BasePart ( Part , MeshPart , vb.) bir yere yerleştirilmiştir ReplicatedStorage/BuildingSystem/Assets , oyun dünyasındaki kareye benzeyen şeyi temsil edenBu BasePart iki çocuğa sahip olmalıdır:
- Başlangıç Döndürme — Bir kullanıcı dünyaya yerleştirdiğinde, karelerin başlangıç döndürmesinin bir NumberValue ile bir Value olduğu başlangıç döndürme.
Doluluk
Bir karelin bir ızgara sisteminde doğru konumda olduğundan emin olmak önemlidir ve bir bitmask kullanılarak yapılabilir.Bir bitmask, kare türünün dünya uzayının veya hücrenin temel bir bölümünde aldığı fiziksel alanı temsil eder.Her bina sistemi arayüzü/objesi, bir ızgara hücresinin herhangi bir yüzünü (ön, sol, arka, sağ, üst ve alt) ve bir ızgara hücresindeki herhangi bir sayıda oktantı ele geçirebilir.Bir kullanıcı, nesneyi işgal eden tüm yüzlerin ve oktantların o hücrede mevcut olduğu durumda yalnızca bir inşaat sistemi nesnesi yerleştirebilir.Bir bina sistemi nesnesi için doluluk şu şekilde tanımlanır:
Bit indeksi | Anlam |
---|---|
0 | Hücrenin alt yüzü |
1 | Hücrenin üst yüzü |
2 | Hücrenin sağ yüzü |
3 | Hücrenin arka yüzü |
4 | Hücrenin sol yüzü |
5 | Hücrenin ön yüzü |
6 | +X, –Y, +Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
7 | +X, +Y, +Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
8 | –X, –Y, +Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
9 | –X, +Y, +Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
10 | –X, –Y, –Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
11 | –X, +Y, –Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
12 | +X, –Y, –Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
13 | +X, +Y, –Z hücrenin merkezindeki kaynağı olan hücrelerin sekizgeni |
Bağlantı
Kareler bir yapı oluşturmak için birbirine bağlanmak zorundadır.Hücrenin yüzlerinin/kenarlarının hangi bölümlerini dokunan çip türü temsil eden bir bitmask kullanabilirsiniz.Bir inşaat sistemi arayüzü/objesinin bağlantısı, bir hücrenin yüzeyinde bir dizi bağlantı noktası/bit ile temsil edilir.Hücrenin yüzlerinde şu şekilde düzenlenirler:

Bir inşaat sistemi nesnesi, bir hücrenin yüzeyinde en az 2 bağlantı noktasını paylaşıyorsa, ızgarada diğer bir inşaat sistemi nesnesine bağlı olarak kabul edilir.
Yeni karo türleri oluştur
Yeni bir karo yazoluşturmak için:
Kaynağı ReplicatedStorage/BuildingSystem/Assets içine yerleştirin. Yukarıda tanımlanan ObjectType ve StartingRotation çocukları içermesi gerektiğini unutmayın.
Yeni karo türünüz için Doluluk ve Bağlantı için yeni tanımlayın ):
Örneğin, Duvar arayüzü türü şöyle ifade edilir:
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}
Arazide çalış
Yapı sistemiyle mükemmel bir şekilde uyum gösteren özgür formlu bir harita oluşturmak istiyorsanız, çevresel arazi sisteminin açıklandığı gibi yükseklik haritası ithalatı sistemini kullanmanızı ve aşağıdaki detayları gözlemlemenizi öneririz:
Roblox'taki arazi, her biri dünyada 4×4×4 küp alan bir üç boyutlu voksel düzeniyle temsil edilir, her biri dünyadaki 4×4×4 küp alanını kaplar.Bu nedenle Roblox Battle Royale, 20×16×20 milimetre genişliğinde bir ızgara hücre boyutu kullanır ve duvar taşları 20×16×1 ve zemin/tavan taşları 20×1×20 milimetre boyutunda.Bu, fayansların ve arazinin düzgün bir şekilde hizalanmasını sağlar.
Yükseklik haritası görüntünüzdeki her piksel, X/Z ekseninde bir arazi vokselini temsil etmelidir, böylece 5×5 piksellik bir alan, 20×20 çubuk alanını işgal eden bir inşaat sistemi hücresini temsil eder.
Yükseklik haritası görüntünüzde, her piksel için kırmızı kanal veya gri kanal değeri, binme sisteminizin yüksekliği ile bölünebilir olduğundan zemin taşları yamağın üzerinde güzel durur.
Yükseklik haritanızı ithal ettiğinizde, ayarlayın:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4