-
Waldläufer
Und woher soll der Maker wissen, ob der Gegner 1 Block weiter vor ihn steht?
Der Gegner muss ja auch irgendwie getroffen werden ...
Trotzdem danke, dass du um diese Zeit noch antwortest^^
Geändert von Cx MR WOLF (04.10.2012 um 23:49 Uhr)
-
General
Ich weiß ja nicht wie dein KS aufgebaut ist, von daher kann ich dir da nicht 100%tig helfen.
Theoretisch müssten die Gegner alle auf ein und die selbe Y und X Koordinate "abspeichern" und dann mit der von dem Helden manimpulierten verglichen werden. So machs ich zumindestens bei Nahkampfwaffen^^
Hat bei mir noch keine Probleme gemacht^^
-
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 11: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