Scorched Earth gibi bir alanı nasıl oluştururum?


12

Ben bir web geliştiricisiyim ve kendi oyunlarımı yazmaya başlamak istiyorum.

Tanıdık olmak canvasiçin şimdilik JavaScript ve element seçtim .

Scorched Earth'te böyle bir arazi oluşturmak istiyorum.

Scorched Earth

İlk denemem sadece ydeğeri rastgele seçemeyeceğimi fark etmemi sağladı ; tepe ve oluklarda bir akıl sağlığı vardı.

Google'da biraz dolaştım, ya da benim için yeterince basit bir şey bulamıyorum ya da yanlış anahtar kelimeler kullanıyorum.

Oyun programlamada tamamen yeni olduğumu göz önünde bulundurarak, örnekte bir şey oluşturmak için ne tür bir algoritma kullanacağımı lütfen gösterebilir misiniz?

Yanıtlar:


18

Orta nokta yer değiştirme algoritması tam olarak istediğiniz şeydir.

Bu bağlantı şöyle bir şey üretebilir:

resim açıklamasını buraya girin

Ya da kullandığınız parametrelere bağlı olarak görüntünüz gibi. Burada C kaynağı var .


Bunun için teşekkürler, hala JavaScript'te nasıl uygulanacağından emin değilim ama umarım bu makaleyi okurken benim için daha açık hale gelecektir.
alex

Az önce düzenlediğim C kaynağı var. Uygulamak için çok fazla bir sorun olmamalı :)
Komünist Ördek

@Komünist Ördek Teşekkürler, daha önce C ile uğraştım.
alex

Komünist Ördek Umarım doğru yoldayım :)
alex

@alex, uygulamanızda bir tür özyineleme kullanmalısınız. Şu anda, rastgele varyasyonun sağa doğru azaldığı rastgele y bileşenine sahip bir çizginiz var.
Juha Syrjälä

5

Orta nokta deplasman algoritmasını ve ardından çok keskin uçları gidermek için düşük geçişli filtreleme gibi hafif bir yumuşatma kullanmaya ne dersiniz ? Bu yaklaşım Scorched Earth ile aynı değildir, ancak benzer sonuçlar vermelidir.

Scorched Earth'ün bir şekilde yerçekimi ve düşen kiri simüle ettiğine inanıyorum. Örneğin, çok dik bir tepeye sahip olamazsınız, aksi takdirde kir düşer ve daha az dik bir eğim oluşturur.


1

Kullanabileceğiniz başka bir yaklaşım daha var. Rastgele oluşturulan bir dizi sinüs dalgası ekleyebilir ve ardından sonucu ekranınıza sığacak şekilde ölçeklendirebilirsiniz. Uygulamada gerçekten kolaydır ve örnek ekran görüntünüzden daha pürüzsüz ve belki de daha yapay olmasına rağmen bazı güzel sonuçlar üretir.

Kaynağı burada javascript'te görebilirsiniz. Farklı arazi türlerini elde etmek için bazı parametrelerle uğraşmak gerçekten kolaydır.

https://github.com/fmstephe/Tankwars

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.