Harita koordinat sistemi için en iyi uygulama


20

Oyun haritalarındaki koordinat sistemleri hakkında herhangi bir kural ve / veya en iyi bilinen yöntem var mı? Başlangıç ​​noktası genellikle haritanın ortasına mı yerleştirilmiş? Yoksa bir köşede mi yaşıyor ve harita 3B alanının tek bir oktanında mı inşa ediliyor?


Hm, tilemap etiketlediniz ve en iyi cevap tilemap endişelerinden bahsediyor, ancak 3D ve oktantlardan da bahsediyorsunuz, muhtemelen ikinci cevap float hassasiyeti hakkında konuşuyor. 3B geometri genellikle bir ızgarada depolanmaz, bu nedenle kökenleri daha keyfi olur ve bir 2B ızgara haritasında şamandıra hassaslığı sorunlarını hiç duymadım. Belki bazı açıklamalar veya birleşme sırası vardır…
StarWeaver

Octant düzenlendi. 3D'den bahsediyorum çünkü gördüğüm çerçevelerin çoğunda bir çeşit Z ekseni var. Oyun haritası düz ve 2B olabilir ancak kamera üçüncü bir eksen boyunca kaydırılmıştır.
TaylorE

Yanıtlar:


37

Çoğu oyun haritanın kökenini köşeye yerleştirir. Bunun temel nedeni, haritaların genellikle dahili olarak iki boyutlu dizilerde depolanması ve çoğu programlama dilinin negatif dizi dizinlerine izin vermemesidir. Hangi köşenin başlangıç ​​noktası olması gerektiği konusunda çok fazla tartışma var , ancak argümanların hiçbirini özellikle güçlü görmüyorum. Sonunda sadece kişisel tercih. Grafik API'nizin baş ağrısını en aza indirmek için kullandığı köşeyi kullanmanız önerilir.

İstisnalar genellikle her yöne sonsuz büyüyen haritalara izin veren oyunlardır. Negatif dizinler olmadan düzgün çalışmaz, bu nedenle basit bir 2d dizisi söz konusu değildir. Harita verilerinizi daha karmaşık bir veri yapısında depolamanız gerekir. Bu durumda, başlangıç ​​noktasını başlangıç ​​konumuna yerleştirmek genellikle mantıklıdır.


12

Teoride, menşe yeri önemli değildir. Harita oluşturulduğunda veya nesneler harita üzerinde hareket ettiğinde yaptığınız tüm matematik işlemleri, başlangıç ​​noktası nereden olursa olsun iyi çalışır.

Ancak uygulamada haritanın merkezini başlangıç ​​noktası haline getirmenin bir nedeni olabilir ve bu kayan nokta değerlerinin kesinliği ile sınırlıdır.

Kayan nokta sayıları ile 0'dan ne kadar uzaklaşırsanız, daha küçük basamaklarda o kadar az hassasiyet olur.

Çok büyük bir haritaya sahip bir açık dünya oyunu üzerinde çalışırken, aslında kökten uzaklaştıkça fizik ve diğer şeylerin parçalanmaya başlayacağı sorunlarla karşılaştık.

Düzeltme, kökeni her zaman oldukça yakın olan bazı hileler yapmaktı, kökeninden çok uzak olmamak için etraftaki şeyleri (oyuncu, harita karoları, kamera vb.) Akıllı bir şekilde ışınlayarak.


1

Gerçekten önemli değil. Bazı insanların koordinat sistemlerinde değiştirdikleri şey genellikle y eksenidir. Sol üstte (0,0) yerine, daha kolay fizik için sol altta olmayı tercih ederler.


Koordinat sisteminin kökeni sol altta ise fizik nasıl daha kolay olur?
Tyyppi_77

3
Sanırım son cümlenin bir kelimesi eksik: hata ayıklama . Zeminin sıfır olması ve her şeyin oradan yukarı çıkması daha 'sezgisel' sıfırdan ve her şey ölçülmeden daha sezgiseldir.
Vaillancourt
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.