Ergebnis 1 bis 7 von 7

Thema: Problem bei Pathfinding: Berechnen einer Luftline

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Hm, irgendwas hab ich falsch gemacht:
    Code:
    Delta_X = X2
    Delta_X -= X1
    Delta_Y = Y2
    Delta_Y -= Y1
    Delta_X_Abs = Delta_X
    If Delta_X_Abs < 0 Then Delta_X_Abs *= -1
    Delta_Y_Abs = Delta_Y
    If Delta_Y_Abs < 0 Then Delta_Y_Abs *= -1
    If Delta_X_Abs >= Delta_Y_Abs Then
       Steigung = Delta_Y
       Steigung *= 100
       Steigung /= Delta_X
    Else
       Steigung = Delta_X
       Steigung *= 100
       Steigung /= Delta_Y
    Endif
    Das ist auf einer Seite, die wie folgt aufgerufen wird:
    Code:
    X1 = Start_X
    X2 = Ziel_X
    Y1 = Start_Y
    Y2 = Ziel_Y
    Call_Event ( This Site page 1 )
    Steigung1 = Steigung
    X1 = Held_X
    X2 = Held_X
    Y1 = Start_Y
    Y2 = Ziel_Y
    Call_Event ( This Site page 1 )
    Steigung2 = Steigung
    Steigung_Delta = Steigung1 - Steigung2
    If Steigung_Delta < 0 Then Steigung_Delta *= -1
    If Steigung_Delta <= Grenzwert Then
       Switch Luftlinie = On
    Else
       Switch Luftlinie = Off
    Endif
    Jetzt weiß ich nicht, ob das überhaupt so stimmt und welchen Grenzwert ich einsetzen soll :/

    €dit: Argh! Ich bin so blöd! xD
    Hab die Formel vergessen und falsch verstanden! Mach mich nochmal ran und poste, wenns klappt

    €dit²: kk, hab's fast:
    Code:
    Delta_X = X2
    [...] bleibt gleich
    Endif
    Y-Ergebnis = Steigung * X1
    zweite Seite:
    Code:
    X1 = Start_X
    X2 = Ziel_X
    Y1 = Start_Y
    Y2 = Ziel_Y
    Call_Event ( This Site page 1 )
    Y_Start_Ziel = Y-Ergebnis
    X1 = Held_X
    X2 = Held_X
    Y1 = Start_Y
    Y2 = Ziel_Y
    Call_Event ( This Site page 1 )
    Y_Held_Ziel = Y-Ergebnis
    Y-Delta = Y_Start_Ziel - Y_Held_Ziel
    If Y-Delta < 0 Then Y-Delta *= -1
    If Y-Delta <= Grenzwert Then
       Switch Luftlinie = On
    Else
       Switch Luftlinie = Off
    Endif
    Das einzige Problem ist, das er rumspinnt, wenn Delta_Y = 0 ist, also eine perfekte horizontale Linie

    Geändert von Teflo (21.07.2008 um 13:26 Uhr)

Berechtigungen

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