
Ich stehe gerade vor einem Problem besser gesagt vor einem Schönheitsfehler.
Ich habe eine Map 10 x 10 Km groß auf der befinden sich Gegner + mein Spielecharakter.
Die Gegener befinden sich in einer Mysql Datenbank und haben eindeutige Coordinaten auf denen diese sich befinden.
Jetzt möchte ich beim erstellen der Weltkarte nur den jeweiligen Teil von 512 x 512 pixel anzeigen und um die Datenbank zu schonen nur alle Gegner auslesen und anzeigen die sich im Umkreis von 1Km befinden.
Das mache ich ganz einfach in dem ich mit meinen Char Position +- 1Km ermittle und via BETWEEN ermittle.
Das problem ist das dass Ergebniss ja nicht die perfekte Distanz von Char ist sondern nur eine Quadrat um den Char herum der an den ecken zum beispiel viel höher als 1 km liegt.
Ohne lang darüber nachzudenken ist mir bewusst das so eine DB Abfrage evt. sehr lang und komplex werden könnte wenn ich zu gemüte ziehe wie ich schon die Distanznzeige berechne:
Code: Alles auswählen
distance = Math.floor(Math.sqrt(Math.pow(mapx - playerx, 2) + Math.pow(mapy - playery, 2)));

EDIT: es ist verhext aber immer wenn ich hier was poste komme ich nach abschicken selbst auf die Lösung
Ich denke ich lese das ganze mit Between aus und bessere anhand der javascript Lösung der Distanz dann einfach in php das ganze aus so sollte ich nen Kreisrunden radius bekommen.
Wer dennoch ne bessere möglichkeit findet kann das gern posten
