Wpis z mikrobloga

Cześć, mam pewien problem (a właściwie pytanie) czy istnieje jakiś fajny algorytm do wyznaczania prawdziwego dystansu pomiędzy dwoma punktami i na podchodzenie do nich? Chodzi o to że mam koordynaty potworka i swoje (gra jest w dwóch wymiarach) i teraz aby postać zaatakowała wymagany jest dystans 6 komórek pomiędzy nimi, dystans obliczam tak:
abs(mojex - xpotworka) + abs(mojey + ypotworka);
i teoretycznie to działa, z taką różnicą, że w grze oczywiście możemy atakować także na ukos, czyli jeżeli potwór będzie w odległości ukośnej 6 komórek, to mój kod pokaże, że dla niego to jest 12 komórek.
Sprawę podchodzenia do potworków w miarę rozwiązałem, jednak też nie do końca i pewnie okrężną drogą.
Jeśli komuś chcę się zerknąć to: http://pastebin.com/m7TYVJUz
Mam nadzieję że jest wystarczająco dużo komentarzy. :P
#programowanie #naukaprogramowania
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@devml: Ok, dzięki, tylko teraz przy porównywaniu odległości (wyznaczaniu najbliższego stwora) trzeba będzie operować na o wiele większych liczbach, więc jest też pewien minus. :P
  • Odpowiedz
@morsisko: Jeśli krok po skosie i po prostej liczysz tak samo to odległość to max(abs(x1-x2), abs(y1-y2)).

Ruch wtedy wygląda tak że idziesz po skosie aż zrównasz się z przeciwnikiem jedną ze współrzędnych, a potem idziesz do niego po prostej.
  • Odpowiedz