Altıgen oyun ızgaraları için yükseklik modeli


16

TL; DR:

Yükseklik, sivil tarzdaki altıgen bir ızgaraya nerede demirlenmelidir? Merkez, yan veya tepe noktası? (Yoksa daha karmaşık mı?)

Doğru soru:

Bir an için hepimizin bildiği ve sevdiği (belki?) Klasik bir oyunu düşünün, Sid Meier'in Alpha Centauri. Harita modeli, klasik Civ formülüne yepyeni görünür arazi yüksekliği konseptini tanıttı. SMAC'de, oyun tahtasının her köşesi, her köşede bekleyen zihin solucanı kaynar göz önüne alındığında, harita güzel tepeler, tam bir zorunluluk sağlayan bir yükseklik vardı.

Sadece tepe noktası yükseklik haritası düzgün bir şekilde altıgen ızgaraya çevrilir mi?

Belirgin alternatifler, yan tabanlı yükseklik haritalaması ve merkez tabanlı yükseklik haritalamasıdır; köşe içi yükseklik eşlemesinin yanı sıra (uçurumlara fırsat verir! Yay!)

Son seçenek, oyun ızgarasına merkezleri ve köşeleri kapsayan üçgen bir kafes uygulamak ve sadece tepe veya iç köşe yükselmesine sahip olmaktır.

Bu seçeneklerden hangisinin iyi çalışması muhtemeldir? Hangisinin aceleyle CPU ve RAM'den tüm suyu emmesi muhtemeldir?

Yanıtlar:


10

Sadece tepe noktası yükseklik haritası düzgün bir şekilde altıgen ızgaraya çevrilir mi?

Izgaranın mozaiklemeye bağlıdır. Uçağınızı böyle döşerseniz, evet.

Izgaralar

Bu durumda, yeşil üçgeni (x6) istediğiniz gibi değiştirebilirsiniz: hextri

Bu seçeneklerden hangisinin iyi çalışması muhtemeldir?

Hepsi iyi çalışıyor. Her neyse, birden fazla yöntem kullanmanız büyük olasılıktır. Sen olamaz sadece sadece tek karo dağ özellikleri istemedikçe Birden-kiremit topografyasını isterseniz bir dağ kadar gitmek gibi "zam" kenarlarına olurdu, orta noktası yükselmesi kullanın.

Hangisinin aceleyle CPU ve RAM'den tüm suyu emmesi muhtemeldir?

Bu bir sorun değil (bunu bir tür gömülü sistem için yazmıyorsanız?), Yükleme aşamasında herkes harita oynatmadan önce tüm harita oluşturma çalışmaları yapılacaktır.


Orta nokta yükseklik ile kastedilen, sadece orta nokta için kotu ayarlayabileceğiniz ve saklayabileceğiniz bir durumdur; eğer iki altıgen farklı yüksekliklere sahipse, etraflarındaki kenarlar yüzlerinin yüksekliklerine uyacak şekilde kaldırılır. (örneğin, 1,1'in yüksekliği 3'tür; 1,2'in yüksekliği 5'dir: yüz 1,1: 1,2'nin oluşturulduğunda 4 yüksekliği vardır).
Williham Totland

1
Çalışma zamanında sorun değil, çünkü hareket için yolları, savaş avantajı için yükseklik farklarını vb. Hesaplamanız gerekir. Çalışma zamanında sorun olmayabilir, çünkü onaltılık başına bir düzine daha fazla kayan nokta çoğu platformda o kadar da kötü değildir, ancak haritayı kullanmak için verilerin hala orada olması gerekir.

-1

En azından bazılarının bunu düşündüğü harika. Kötü için bu sayfa sadece birkaç yıl sonra karşılaşıyorum. Ancak bunun yerine temel altıgenler için sorunuzu cevaplayacağım. Şimdiye kadar gösterilen resimler% 100 değil. Ve 1 metrelik bir haritada ızgara şekilsiz olacaktır. Yani 60 derece dönüş mümkün değil.

Üzerinde deney yapıyorum:

  • Farklı boyutlarda altıgenler: Hangi üçgen (piksel) bazında, yazdırıldıktan sonra 1 metrelik haritalarda en yüksek doğruluğu verir. Bu, 60 derece döndürürken mümkün olduğunca mükemmel olmasını içerir. Ayrıca takma için 180 derece döndürürken.

  • Farklı birleştirilmiş altıgen katmanları.

  • Yüksek ayrıntılı fotoğrafları kesmek için tek altıgenler (RAM = büyük haritalarda yetersiz).

  • Bilgisayarımın kesin sınırları artı hissettiğim şey izin verilebilir.

Farklı şekilli altıgenler yaparak yükseklik elde etmeyi denemedim. Ama yükselmeyi yapmadan önce temelin doğru olması gerektiğini biliyorum.


Özet:

  • 1 metrelik haritada 1 mm veya daha az hassasiyet. 60 derece kuralı.

  • 180 derece döndüğünde kendilerine uyan hatlara ihtiyacım var.

  • Üçgenimin maksimum zum ile ekranıma sığması gerekiyor.

Seçimimi şu kurallarla 3'e daralttım:

Küçük:

  • Boyut; +26 x +45, 27 x 46 piksel

  • 1 metrede yanlışlık; 0,7 mm

  • Sıra; 131213131312131

Orta:

  • Boyut; +41 x +71, 42 x 72 piksel

  • 1 metrede yanlışlık; 0,20 mm

  • Sıra; 1312131313121313131312131

Büyük:

  • Boyut; +56 x +97, 57 x 98 piksel

  • 1 metrede yanlışlık; 0,05 mm

  • Sıra; 1312131313121313131213131312131

Biri 1 piksel.

İkisi ve üçü 2 piksellik gruplardır. A2 toplam 4 piksel ve A3 toplam 6 pikseldir.

Bir sıra eklerseniz, bunların piksel cinsinden genişlik olduğunu görürsünüz. Eğer onları toplar ve 2 ve 3 yerine 4 ve 6 sayarsanız, yüksekliği piksel olarak alırsınız.

+ Sayıları birbirinin üstüne veya birbirine 2 üçgen yerleştirdiğinizde piksel olarak eklediğiniz sayıdır.

Soru sormaktan çekinmeyin. E-postamda.


1
Asıl soruyu nasıl ele aldığınız belli değil. Konuyu biraz tartıştınız, ancak genel noktanızı da izole etmek zor. Bu piksel boyutlarının altıgen geometri ve yükseklik ile ne ilgisi var?
Seth Battin

1
Başka bir şey: StackExchange geleneksel bir forum değildir. Yararlı bilgiler yayına dahil edilmelidir ve okuyucuların tam bir cevap almak için size e-posta göndermeleri gerekmez. Ayrıca bu bir forum olmadığı için, insanların cevabınızı yeniden sorgulamasının bir yolu yoktur. Yani sadece soruları uygunsuz olarak davet etmekle kalmaz, işe yaramaz. Bkz. Gamedev.stackexchange.com/help/how-to-answer .
Seth Battin
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.