Ergebnis 1 bis 7 von 7

Thema: Koordinaten Berechnung?

  1. #1

    Koordinaten Berechnung?

    Ich würde gerne ein AKS skripten...hatte auch keine probleme BISHER...wie soll ich abfragen ob der Gegner ein Tile for dem Hero steht...also das der Gegner net 4 tiles vom hero weg ist un er doch noch schaden abkriegt...

  2. #2
    Jedes Event hat eine x/y Variable für seine Position. Die kann bei dem Eventkommando für die Variablen abgefragt werden. Man muß dann letztendlich nur die Werte vom Gegner von denen des Helden abziehen und wenn das sowohl bei dem x-Wert als auch y-Wert in der Spanne von -1 bis 1 ist, steht das Event direkt neben dem Helden. Das ist die simpelste aller Möglichkeiten, denke ich.

  3. #3
    Also sowas in der Art?
    Code:
    <>Change Variable: Var(0001: HeroX) = Hero's X Pos.
    <>Change Variable: Var(0003: GegnerX) = Gegner1 X Pos.
    <>Change Variable: Var(0005: AbstandX) = Var(0003: GegnerX)
    <>Change Variable: Var(0005: AbstandX) - Var(0001: HeroX)
    <>IF Var(0005: AbstandX) >= -1
       <>
    :End Case
    <>
    Wie kann man das eigentlich die Umgebung des Helden machen, wenn sie nach Möglichkeit kreisförmig sein soll?
    Also z.B. wenn man testen möchte, ob der Held in einer gewissen Nähe eines Monsters ist, welches ihn dann sofort attackiert, wenn er dem Monster zu Naha kommt.

  4. #4
    @blue: joa, hättst im Mathe aufgepasst... Satz des Pythagoras
    Der Abstand zweier Events kann berechnet werden durch
    sqrt(X²+Y²)
    wobei X und Y die Abstände auf den jeweiligen Achsen sind und sqrt Squareroot also Quadratwurzel

    Da der Maker keine Wurzel kann, musst du entweder eine Wurzelfunktion selber basteln (du fragst einfach bei jeder Zahl durch, ob sie quadriert unter der eingabe waere, wenn nech, nimmst du die erste, bei ders nech so is)
    oder du quadrierst den Wert, den du für den Abstand nehmen wolltest und lässt die Wurzel einfach wech

  5. #5
    Ich hab zwar in Mathe aufgepasst, aber auf die Idee bin ich nicht gekommen.

    Wenn man das jetzt für eine kreisähnliche Fläche machen will, muss man dann den Abstand zu jedem der Randfelder berechnen?
    Bsp.:
    XXXXOOOXXXXXX
    XXOOOOOOOXXXX
    XOOOOMOOOOXXX
    XXOOOOOOOXXXX
    XXXXOOOXXXXXX


    X= Felder ausserhalb des abzufragenden Bereichs
    O= Felder des abzufragenden Bereich
    M= Mittelpunkt (Monster)

  6. #6
    Aaaalso nochma:

    Das ist ein Dreieck. Es hat die besondere Eigenschaft, dass ein Eck darin 90° hat, es also im rechten Winkel steht.
    Ist diese Eigenschaft gegeben, gilt: a²+b²=c²
    daraus folgt: c = plusminus Wurzel aus a²+b²
    Da wir c als positiv annehmen: c = sqrt(a²+b²)

    so, was hat das jetzt mit Koordinaten zu tun? Ganz einfach, deine X-Achse ist orthogonal (senkrecht) zur Y-Achse (jedenfalls im üblichen Koordinatensystem)
    D.h. der Winkel zwischen ihnen ist ein rechter Winkel
    nimm jetzt die Nicht-Rechten-Ecken als die Positionen deines Heldens und des Monsters an, dann erkennst du, dass der Abstand dieser beiden c ist, a und b kann man problemlos als die Abstände von Held und Monster auf den einzelnen Achsen auffassen.
    Daher: Abstand = sqrt(AbstandX²+AbstandY²) oder Abstand² = AbstandX²+AbstandY²
    In diesem Fall vielleicht ein >= da du ja nicht abfragen willst, ob der Abstand genau der und der ist sondern ob der tatsächliche er kleiner ist als der geforderte
    Soll es nicht kreisförmig sondern z.B. Ellipsoid sein, brauchst du natürlich eine andere Formel, nämlich:
    wobei a und b Höhe/Breite der Ellipse sind et cetera

    klarer?

    Allgemein, wenn man mit Koordinaten in Spielen jongliert, gibt es eigentlich 3 wesentliche Formeln:
    1. Pythagoras für Abstände
    2. Sinus, Cosinus, Tangens etc für die Umrechnung zwischen Winkeln und Strecken
    3. Skalarmultiplikation zweier Vektoren um festzustellen, ob sie orthogonal zueinander stehen (dann ergibt die Skalarmultiplikation 0)
    damit kann man schon so gut wie alles machen. Vielleicht noch ein bisserl Physik wenn man mit Abbremsung und Gravitation/Kräften schaffen will, aber alles darüber hinaus is mehr abstraktes Zeuch

    Geändert von Dhan (16.12.2006 um 16:53 Uhr)

  7. #7
    Und was lernen wir daraus? Einfach rechteckigen Bereich nehmen, reicht für Gegnererfassung völlig aus. =3

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •