-
General
Aus dem Kopf heraus:
Angenommen die maximale Entfernung, innerhalb der ein Gegner getroffen werden kann ist MaxDistanz, dann ist der Gegner getroffen wenn:
(HeldX - GegnerX) * (HeldY - GegnerY) <= MaxDistanz * MaxDistanz und (HeldX - GegnerX) * (HeldY - GegnerY) >= -(MaxDistanz * MaxDistanz)
Die redundanten Operationen kannst du zwischenspeichern.
Geändert von Kyuu (05.10.2012 um 12:45 Uhr)
-
Waldläufer
Hey, das hat mich sehr geholfen, vielen vielen Dank!
-
General
Sorry, hab da einen Denkfehler. Die folgende Formel ist eigentlich das, was ich posten wollte:
dX = abs(HeldX - GegnerX)
dY = abs(HeldY - GegnerY)
Gegner ist getroffen, wenn:
dX * dX + dY * dY <= MaxDistanz * MaxDistanz
-
Waldläufer
Also bei mir funktioniert es auch so genau so wie ich es haben wollte, trotzdem danke
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln