Zelda gibi bir 2D oyun, karakterinin sadece bir bölümünün gösterildiği binaların arkasındaki karakterini nasıl ele alıyor?


28

Zelda tarzı basit bir oyun geliştirmeye çalışıyorum. Bu çok yararlı bir konu buldum

LoZ: Geçmişe Bir Bağlantı alt döşeme çarpışmalarını nasıl ele aldı?

çarpışma algılama mekanizmamı geliştirmek için referans olarak kullanıyorum. Ancak, anlayamadığım bir şey var. Link binaların arkasında olduğunda, onun sadece bir kısmı gösterilir. Birisi lütfen bu etkinin nasıl sağlanabileceğini anlamama yardımcı olabilir mi? Bina arka planın bir parçası değil mi?


Render stilinin bir zemin katmanı (çim, fayans döşeme, vb.), Bir nesne katmanı (tencere, düşmanlar, büzmeler, bağlantılar, vb.) Ve bir gökyüzü katmanı (çatı tepeleri, kaldırılmış çömlekler, ağaç tepeleri) olduğunu düşünmeyi seviyorum. , vb). Katmanlar arasında bir şeyleri taşıma mantığı, saksı örneğinde biraz tuhaf olabilir, ama bu başka bir sorun.
Benjamin Danger Johnson,

Yanıtlar:


32

2D Döşenmiş oyunlarda genellikle farklı katmanlarda işleyen daha fazla katman bulunur - bazıları arka planda diğerlerinde oyuncuların üstünde yer alır.

Çatının o kısmı oyuncunun üstünden geliyor ve bu yüzden oyuncu binanın arkasına geçebiliyor.

İşte daha iyi açıklamak için oyunumdan bir örnek: görüntü tanımını buraya girin


Öyleyse, binanın kendisi arka planın bir parçası olabilir, ama çatı, sprite ile katmanın üstüne çizilen farklı bir katmanın parçası mı?
Tinadm

2
@Tinadm, mutlaka tüm çatı olması gerekmiyor, sadece her şeyden sonra verilen oyuncunun üstüne çizilen çatı bölümü olabilir.
Tetrad

7
Harika grafikler için +1. Gerçekten görsel öğrenenlere yardımcı olur.
UnderscoreZero

1
Eski SNES JRPG'lerin aynı tekniği kullandığından eminim. FF2, FF5, vb. Teknik hala geçerlidir.
Hatoru Hansou

1
Bunu ayrı ayrı emülatörlerle (örn. Tek tek katmanları manuel olarak açıp kapatmanıza izin veren ZSNES) görebilirsiniz.
Tobias Kienzler

5

İken Blodyavenger cevabı büyük olasılıkla nasıl yapıldığını kapakları, burada (dört veya sekiz farklı yönlere veya bazı kamera yükseklik seviyelerini örneğin) kolay perspektif geçiş için izin verecek başka olasılık:

Haritanızın yukarıdan aşağıya görüntüsünü göz önünde bulundurun, örneğin

  ABCDEFGHIJKL
1 +-----=----+
2 |  .    .  |
3 |    X   o |
4 | .        ||
5 |    .   . |
6 +--=-------+

Diyelim ki, Xyüksek bir ayağı işaret ediyor. Her nesne için, birçok döşemenin keyfi yüksek olabilen olası tüm perspektiflerin (veya aynı olanı…) kullanın. Şimdi çizerken, geçerli perspektiften arkasındaki sütun veya satırla başlayın, örneğin güneyden bakılıyorsa 1. satır. Bundan sonra satır / sütunu en çok ikinciye ve arkasına çizin. Bu şekilde, bir şey bir karodan daha yüksek olduğunda (mevcut perspektife gerilmiş), arkasında yatanları geri çekecektir.

(Güzel fotoğrafların olmaması için üzgünüm, uygulamalı grafiklerde pek iyi değilim ...)


Nesne dokularını
esneterek

1

Derinlik için bir değişkene sahip olmalı ve ilk önce en büyük derinliğe, ardından en düşük derinliğe sahip görüntülere sahip olmalısınız. Ve her nesnenin derinliği, y koordinatının negatifine eşit olmalıdır.

Depth=-y

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.