2010-01-18 12 views
19

Sahip olduğum bir oyun için bir fikir prototip oluşturmak istiyorum. Bu oyunun fikri, oyuncunun zemini kazarak, tünel oluşturup hazineyi bulmasıdır.XNA'da bir Worms stili yıkılabilir arazi nasıl uygulanır?

'Solucan tarzı' alanı oluşturmak, tünelin etrafında dolaşan ve zıplayan oyuncu için çarpışma algılaması yapmak istiyorum. Bu tür dinamik arazi örnekleri bu resimlerde görülebilir. Example 1 http://img301.imageshack.us/img301/1675/30184730wd6.png Example 2

Sorum yok edilebilir arazi bu tip uygulamak için en iyi yolu nasıl? XNA oyun stüdyosu kullanıyorum.

+1

İmha yıkımın CD ile birlikte piksel bazında yapıldığına inanıyorum. XNA'nın nasıl çalıştığından emin değilim. –

+0

Motor agnostik: https://gamedev.stackexchange.com/questions/6721/implementing-a-2d-destructible-landscape-like-worms –

cevap

34

this thread'un altında bazı güzel kodlar var. Ayrıca, this, yıkılabilir bir arazi elde etmek için harika bir adım adım eğiticidir.

DÜZENLEME - İkinci eğiticinin orjinal bağlantısı bozuktu, bu yüzden arşivlenmiş bir sürümüne bağlandım.

+1

Eğer daha fazla oy verebilseydim. Mükemmel cevap! –

+0

+1 gamedev'e bağlantı vermek için +1 – zebrabox

4

bir işin eighter iki possibilties vardır, ama buna uygulamak ne kadar kolay XNA bağlıdır: diğerleri gibi

  • bitmap maskeleme önerdi. Tüm "zemin" pikselleri ve tüm "hava" piksellerinden oluşan bir bitmapi tutuyorsunuz. Yerçekimi varsa; Bir karakter havada düşerken, yere düşemez.
  • Vektör geometrisi. Dikdörtgen bir "zemin" ile başlar ve hava yaratan "kaldırılmış" bir zeminin listesini tutarsınız. Bu geometri düzenlemek çok basittir: sadece bir daire veya listeye benzer ekler ve grafikleri günceller. XNA'nın & şekil kabiliyetine sahip olup olmadığını bilmiyorum; ama bu iki şeyle geometri oluşturmak kolay olmalı ve daha sonra bir doku veya benzeri uygulamalıdır. Ayrıca, işlenmiş arazinin önbelleğe alınmış bir sürümünü koruyarak ve yeni eklenen "hava" nın sınırlayıcı kutunun önbelleğini güncelleyerek, bu işlemin optimize edilmesi kolay olabilir. Bu çözüm biraz daha matematik gerektirir.
+0

Orijinal fikrim vektör geometrisini denemekti.Geometriyi üçgenleştirerek grafik kartı kullanarak çizebilmem için biraz acı çekiyorum. –

7

Riemer, XNA'da geliştirdiği bir oyuna benzer bir yaklaşıma sahiptir, top mermileri arazinin "yok edilmesine" neden olur ve daha önce söz konusu arazide bulunan herhangi bir sahne buna göre hareket ettirilir.

Gereksinimleriniz için yeniden yapılandırılmalı ve geliştirilmelidir, ancak bu bir başlangıçtır.

Riemer, diğer şeyler için de iyi bir eğitici seçimine sahiptir.

http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Adding_craters.php

İlgili konular