Bir karo haritası oluştururken düzensiz karoları nasıl ele alırsınız?


13

resim açıklamasını buraya girin

Emin olmadığım karo haritamla ne yapmak istiyorum. Gördüğünüz gibi üst duvarlar alt ve yan duvarlardan çok daha büyüktür (bu da köşelerimle ilgili garip şekiller olan bir sorundur [daha sonra L sonra kare gibi) ve mevcut karolarımın 40x40 pikselinden daha büyük ).

resim açıklamasını buraya girin

Ayrıca, karoların köşelerinin ve üst kısımlarının karoların geri kalanına kıyasla neye benzediğini göstermek için kullandığım karo levhasını da ekledim.

Ne düşünüyorum ben sadece bir dizi WxH yerine fayans genişliği ve yüksekliği kullanırsanız ben sahip aynı dizi kullanarak onları çizmek mümkün olabilir olduğunu? Bunun ne kadar iyi çalışacağını bilmiyorum, ancak farklı değerlere sahip olacak bloklar oyuncu / NPC'lerin üzerine basamayacağı bloklardı, o zaman bir sorun olmayabilir, yine bunun uygun olup olmadığından emin değilim çözüm.

Şu anda nasıl işlediğimi görmek istiyorsanız kodum : Map.java (pastebin) (değiştir: im onu işlemiyor , şu anda haritayı nasıl yaptığım anlamına geliyordu)

tl; dr - 2d görünümlü kiremit haritamı alıp farklı boyutta karolara nasıl değiştirebilirim? ya da yapmaya çalıştığım şeyi yapmanın daha iyi bir yolu var mı? Google'da arama yaparken aramam gereken bir yöntem var mı?

Yanıtlar:


19

Bunu yapmanın iki standart yolu vardır.

  • Standart olmayan döşeme boyutlarınızı standart döşeme boyutlarına ayırın. Bu duvar şeritleri, seviye editörünüzde bir araya getirmeyi bildiğiniz bir kare karo yığını haline gelir. Erken Final Fantasy oyunları gibi oyunlar bu şekilde çalıştı.
  • Herhangi bir karo parçasının standart karo yüksekliğinizden daha uzun olmasına izin verin. Döşemeleri döşemenin dikdörtgenin altına hizalayın, böylece ekstraların normal döşeme yüksekliğinden daha yüksek çizim yapmasını sağlayın. Haritanızı çizerken, arkadan başlayarak karoları çizersiniz (karo ekranda daha yüksek kareler) ve alt karolarla (ekranın altındaki olanlar) biter. Bu, ön plandaki uzun karoların arka plandaki karoların üzerine düzgün bir şekilde yerleştirilmesini sağlar. Bu yaklaşımda, döşemelerinizin hala genişlikteki tek bir döşemeyle sınırlı olduğunu unutmayın.

Bu yaklaşımlardan birini veya her ikisini birden yapabilirsiniz. "Fayans yığınlarına ayrılma" yaklaşımı yapan oyunlar bile, bazı nesnelerin (ağaçlar vb.) Karo yükseklik sınırlarını kırmasına izin verir ve her şeyin katmanlarından emin olmak için sadece yukarıdan aşağıya bir harita çizme sırası uygular doğru şekilde.


2
İkinci yaklaşım için +1. Temelde bu sizi döşeme haritasından haritadaki nesnelere taşır.
Kromster

Mükemmel teşekkür ederim, ikinci seçeneğe benzer bir şey olabileceğini düşündüm, ancak standart bir şekilde yaptığımdan emin olmak istedim. = D
Gecikme

2

Tek boyutlu karolarınızı standart boyutlara uyacak şekilde dilimleyin ve kesin. Bir kiremit haritasının tüm amacı, her şeyi aynı boyutta tutarak çok fazla hız ve fayda elde etmenizdir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.