PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gegner koordinaten = reichweite = och menno XD



perticolum
14.06.2009, 21:20
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) ^^

danke im voraus
perticolum

R.D.
14.06.2009, 21:49
Gegner X-Held X

Damit wär das doch erledigt oder?

Dhan
14.06.2009, 22:50
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}

perticolum
15.06.2009, 16:56
danke danke ^^

habe eine lösung gefunden.
einfache funktionen :)

wenn der gegner nach unten sieht:

set variable: [gegner y]+1

bei oben dann -1 und links und rechts
das gleiche mit x

da hätte ich auch früher drauf kommen können ^^

danke noch mal
perticolum

CapSeb
16.06.2009, 19:55
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).

X_Abstand² + Y_Abstand² < Gesamt_Abstand²
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.


http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif

perticolum
19.06.2009, 16:38
okay danke ich werde das mal probieren ^^

lg
perti