Döşeme haritasının üstünde karmaşık bir çarpışma alanını nasıl tanımlayabilirim?


13

Birçok insanın önerdiği gibi, oyunum için bir harita oluşturmak için Çinili harita düzenleyicisini kullanıyorum ve özellikle libgdx çerçevesi, Çinili haritalar için API sağladığı için harika.

Kodumdaki herhangi bir çarpışma ile başa çıkabilmem için harita düzenleyicide harcanabilir karoları tanımlayabildiğimi veya anlayamayacağımı anlıyorum. Ama şu anda bir döşemeyi katlanabilir ve katlanamayan alanlara bölmem gereken bir durumdayım. Manuel olarak, iki alanın sınırlarını ve çizgilerini tanımlayabilir ve programlı olarak bununla başa çıkabilirim. Ama bu çok zaman alan bir iş.

Bu yüzden çok fazla şey araştırdım ve bu fizik-beden editörünü buldum . Bu, yukarıda bahsettiğim süreci otomatikleştirmek için harika bir araç gibi görünüyor. Ancak sistem, paketlenmemiş görüntünün her biriyle çalışır ve görüntüyü çalışması için paketinden çıkarsam bile çalışacağından emin değilim.

Çarpışma alanını tanımlamanın tüm bu sürecini yapmanın daha iyi bir yolu olup olmadığını merak ediyorum. Herhangi bir öneri çok takdir edilecektir.

Yanıtlar:


22

Her zamanki gibi masaya birkaç fikir vereceğim. Bu soruna yaklaşmanın kesinlikle birkaç yolu vardır. Hatırlamayı başardığım üçünü anlatacağım ve bu yaklaşımlardan hangisinin (varsa) projeniz için iyi olduğuna karar vermek size kalmış.

Fikir 1: Fayanslarınızda tekrarlanabilir desenler

Sisteminizin akla gelebilecek herhangi bir çarpışma alanını destekleyecek kadar esnek olması gerekiyor mu, yoksa inşa edebileceğiniz ve bunları özel durumlar olarak ele alabileceğiniz sınırlı bir çini şekli kümesine ayırabilir misiniz? İşte bu fikri okumak için bir çift kaynak:

Fikir 2: Tilemap'ı yok sayın

Evet, tilemap'ı tamamen yok sayın ve çarpışma alanınızın farklı, çokgen bir gösterimini saklayın. Ardından bu geometriyi karo tabanlı haritanızın üzerine yerleştirin ve çarpışmalarla onunla başa çıkın. Herhangi bir fiziğe ihtiyacınız yoksa, aşağıdaki kaynağı kontrol edin:

Aksi takdirde, muhtemelen bağlandığınız aracı kullanabileceğinizi düşünüyorum.

Fikir 3: Mükemmel piksel çarpışma tespiti

Mükemmel piksel çarpışmalarını kullanın ve değişken çarpışma alanlarınızı kodlamak için karolarınızda ayrı bir maske veya sadece alfa kanalı kullanın. İlham almak için aşağıdaki kılavuzu kontrol edin:

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.