Yapı sistemi

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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.

Building Example

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:

  • Nesne Türü — Bileşen türü adının bir StringValue ile bir Value ı.
  • 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 indeksiAnlam
0Hücrenin alt yüzü
1Hücrenin üst yüzü
2Hücrenin sağ yüzü
3Hücrenin arka yüzü
4Hücrenin sol yüzü
5Hü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:

Octant Cube Diagram

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:

  1. Kaynağı ReplicatedStorage/BuildingSystem/Assets içine yerleştirin. Yukarıda tanımlanan ObjectType ve StartingRotation çocukları içermesi gerektiğini unutmayın.

    Battle Royale Weapon Example
  2. Yeni karo türünüz için Doluluk ve Bağlantı için yeni tanımlayın ):

    Battle Royale Weapon Example

Ö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 000
OCCUPANCY = 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, 0
    Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4