Şimdi Ara

A* pathfinding algoritmasının izometrik karo haritasına uyarlaması

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
1
Favori
160
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Vikipedideki A* algoritması sözde kodunu JavaScript'e uyarlamaya uğraşıyorum, komşu düğümleri rahatlıkla bulabiliyorum, heuristic ve maliyet hesabında da sıkıntı yok, render işlemi için p5 kütüphanesini kullandım fakat belli bir noktada tıkandım. Normal izometrik harita olsa sıkıntı olmuyor fakat aşağıda GiF'te görebileceğiniz üzere staggered (Türkçe karşılığı aklıma gelmiyor) şeklinde olduğu için bir çözüme ulaşamadım.


    JsFiddle: https://jsfiddle.net/wstprqLu/1/



    A* pathfinding algoritmasının izometrik karo haritasına uyarlaması



    @vonderplanitz @seyfi84








  • Sorunu çözdüm, merak eden varsa detaylı döküman hazırlayıp yükleyebilirim

    A* pathfinding algoritmasının izometrik karo haritasına uyarlaması
  • https://www.redblobgames.com/grids/hexagons//


    oyun alanin hexagonal grid esasinda. bu blog'da her sey var. gerci yapmissin.

  • quote:

    Orijinalden alıntı: Guest-E41040413

    https://www.redblobgames.com/grids/hexagons//


    oyun alanin hexagonal grid esasinda. bu blog'da her sey var. gerci yapmissin.

    Çalışıyor şuanda ama bazı hata ve buglar var, horizontal geçişler olmasa birebir hexagonal mantığında çalışıyor dediğiniz gibi. Şuanda X ve Z düzlemini kullanıyorum ama linkte üç boyutu da kullanmış, değişik bir yaklaşım var.


    < Bu ileti mobil sürüm kullanılarak atıldı >
  • hexagonal grid'u esasinda 2d bir gridde tutabiliyorsun. fakat satir sayinin tek cift olmasina gore 6 yonun offset'i degisiyor. sag uste gitmek icin tek oldugunda x+1 y+1, cift oldugunda x+0 y+1 gibi. degerleri tamamen uydurdum su an.


    bu blog baya iyi ve aciklayici. farkli yaklasimlari anlatiyor.




    < Bu mesaj bu kişi tarafından değiştirildi Guest-E41040413 -- 12 Kasım 2020; 12:29:39 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.