kostenloser Webspace werbefrei: lima-city


Herausfinden des abstand zwischen zwei Positionen mit PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    syscy

    syscy hat kostenlosen Webspace.

    Ich bin grad bei einem kleinen Spiel mit Javascript und PHP.
    Da muss ich den Abstand zwischen zwei Positionen herausfinden.
    Ich hab da in ner if abfrage:
    if ((($players[$key]['posx'] - $row["posx"]) + ($players[$key]['posy'] - $row["posy"])) < 5)

    $players[$key]['posx'] ist die X Position des Spielers wo der Abstand geprüft wird und $row["posx"] ist die X Position des Zombies.
    Aber das geht nicht richtig.

    LG DragonFire
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    Die Distanz 2er Punkte zueinander ist nicht einfach deltaX plus deltaY, sondern die Summe der Quadrate und daraus die Wurzel. Also:
    $distanz = sqrt(pow($x2 - $x1,2) + pow($y2 - $y1,2));

    Damit sollte es klappen.

    Ansonsten solltest du definieren, was genau nicht richtig geht. Ansonsten wirds schwer nachzuvollziehen.

    Liebe Grüße
  4. Und wir sollen jetzt raten was dort passiert?
    Genau wie die IF-Funktion kann ich jetzt auch nur sagen: true / false


    Was heißt denn bitte "Aber das geht nicht richtig"?

    Wenn ich mal fiktive Werte einsetze:
    Player (1,1)
    Zombie(3,2)
    Dann ergibt deine Bedingung:
    (1 - 3) + (1 - 2) < 5 = true
    Und nu? Für mich funktioniert die Abfrage.
    Das Problem ist eher, dass wir nicht wissen was du uns fragen willst.

    Sollte das eine Ermittlung der Entfernung sein, komme ich im Moment noch nicht hinter diese Logik.
    Denn ausgerechnet kommt dort oben -3 heraus.
    Das Einzige was ich daraus ableiten könnte, wäre, dass der Zombie noch 3 Felder entfernt ist, bevor er auf dem Feld des Spielers steht.
    Vorausgesetzt er kann nur horizontal oder vertikal laufen.
    Aber das ist jetzt mal reine Spekulation.
  5. Autor dieses Themas

    syscy

    syscy hat kostenlosen Webspace.

    -.- PHP zeigt schonwieder nen Fehler an aber ich weiß nich was falsch ist:
    echo '<img style="position:absolute; left:'. $row["posx"] .'; top:'. $row["posy"] .'" src='. if(file_exists("images/". $row['name'] .".png") = true) {echo ("images/". $row['name'] .".png");}else {echo "images/Playerself.png";} .' width="32">

    Der Fehler ist:
    Parse error: syntax error, unexpected 'if' (T_IF) in C:\xampp\htdocs\Game\xampp\pos.php on line 39


    Beitrag zuletzt geändert: 14.10.2013 16:54:13 von syscy
  6. if ist ein Ausdruck, so geht's also nicht.

    Vereinfache die Ausgabe mit weiteren "Teil"-echos, dazwischen kommt das if mit zwei weiteren echos:
    <?php
    echo "erster teil";
    if (file_exists(...))
     {
      echo "zweiter teil/variante a";
    }
    else
    {
      echo "zweiter teil/variante b";
    }
    echo "dritter teil";
    ?>

    Versuche nicht zuviel auf einmal in eine Zeile zu zwängen!
    Spätestens bei der Fehlersuche zahlt es sich aus.
  7. Innerhalb eines "echo" kannst du kein IF-ELSE setzen.
    Wenn dann nur einen "ternären Operator".

    Aber wie suge schon gesagt hast, breche das mal lieber in lesbare Zeilen um.
    Und mache dir erst einmal selbst den Gefallen und lerne die Basics.
    Du schreibst, wie Kraut und Rüben wachsen.
    Das ist schon ein wenig gruselig.
    Jeder fängt mal mit dem Laufen an, aber du versuchst schon zu rennen und das Ergebnis zeigt sich hier.

    Wirklich zu empfehlen wäre Codecademy.
    Die bieten mittlerweile auch PHP an, somit lernst du zumindest den Aufbau.
    Codecademy PHP

    $image = '';
    
    if (file_exists('images/' . $row['name'] . '.png') == true)
    {
        $image = $row['name'];
    } else {
        $image = 'Playerself';
    }
    
    echo '<img src="images/' . $image . '.png" style="position:absolute; left:' . $row["posx"] . '; top:' . $row["posy"] . '; width:32px;" />';



    Beitrag zuletzt geändert: 16.10.2013 0:50:51 von kgreen
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!