ich möchte mal ganz lieb und kurz fragen ob wer weiß, wie ich es erreichen kann, dass mein held den gegner angreifen kann ... damit meine ich, wie errechne ich, ob der gegner in reichweite des helden (schlagreichweite oder schussreichweite ist) ^^
Wenn dir ein Rechteck um den Helden nicht ausreichst, wie du es bei
| HeroXCoords - GegnerXCoords | < a
| HeroYCoords - GegnerYCoords | < b
erhälst, dann musst du mit dem Satz des Phytagoras arbeiten:
Abstand² = XCoordAbstand² + YCoordAbstand²
Da der Maker keine Wurzelrechnung kann, musst du dafür selbst was schreiben, ein kleines Common Event, das du an entsprechender Stelle callst mit einem Algorithmus a la
(Eingabe ist Variable x, Ausgabe ist y)
Variable a = 1
Label #1
Variable b = a
Variable b *= a
fork (b >= x) {y = a}
else {a += 1, Go To Label #1}
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Auch wenn schon eine zufriedenstellende Lösung gefunden wurde,
@Dhan/ Wurzelproblem:
Man braucht keine Wurzel ziehen. Wenn man den Abstand quadriert lässt, ist das Kleiner-Zeichen, und damit die Funktion, weiterhin gültig (da die Funktion y=x² monoton ist).
Für Gesamt_Abstand² setzt man einfach irgendeinen Wert und ignoriert die Wurzel. Zum Beispiel wäre sechs eine Lösung. Die Wurzel aus sechs muss keiner ausrechnen, auch nicht der Maker. Es reicht, dass man es vorher im Kopf abschätzt (2,5).
Ist jetzt beispielsweise der X-Abstand 1 und der Y-Abstand 2, lautet das Ergebnis 5. Das Ziel liegt innerhalb des Radius. Auch ohne Wurzelannäherung.