Herausfinden des abstand zwischen zwei Positionen mit PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
code
dritter teil
ergebnis
fehlersuche
http
image
kleinen spiel
kraut
operator
pos
position
rennen
setzen
url
wachsen
weiteren echos
weiteren teil
zuviel
zweiter teil
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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. -
-.- 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 -
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. -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage