Kampfsystem für Browsergame

bernd herz

Grünschnabel
Hallo,
ich habe mich entschlossen zu versuchen ein Browsergame zu programmieren.
Natürlich habe ich vorher Counter, Gästebücher etc schon programmiert.
Das Spiel wird primitiv und soll sich parrallel zu meinem Wissenstand weiterentwickeln.
Nun habe ich ein Problem bei dem Kampfsystem.
Es fliegen X Raumschiffe von Planet A zu Planet B.
Der Einfachheit halber haben diese Schiffe nur 2 Werte, Angriff und Verteidigung.
Zum Beispiel fliegen jetzt 3 Schiffe auf den Planeten B zu, dort stehen 4 Gegnerische Schiffe.
Die Schiffsid und die beiden Attribute sind in einem mehrdimensionaligen Array gespeichert,
Nun weiß ich nicht weiter; wie muss ich das mehrdimensionalige Array benutzen?
PHP:
$flightquery = mysql_query("select * from flight where Ankunftszeit = '$tick'");
 $shipnumber  = 0;
 $fleetnumber  = 0;
 while ($flightfetch = mysql_fetch_array($flightquery)) {
        $zielplanet  = $flightfetch["$fleetnumber"]["Ankunftsplani"];
        $gegnerquery = mysql_query("select * from ships where PID='$zielplanet'");
        $gegnerfetch  = mysql_fetch_array($gegnerquery);
        $shipid       = $gegnerfetch["$shipnumber"]["SID"];
        $shipatk      = $gegnerfetch["$shipnumber"]["Waffen"];
        $shipdef      = $gegnerfetch["$shipnumber"]["HP"];
        $fleetnumber  = $fleetnumber +1;
        $shipnumber   = $shipnumber+1;
  }
Mein Problem ist ich brauche ja von jedem Schiff die Werte bevor der eigentliche Kampf startet, so bekomme ich die Werte für ein Schiff, die While-Schleife wiederholt sich und die Daten des ersten Schiffes werden wieder überschrieben, was mache ich falsch?
Ich befürchte ich hab mich sehr undeutlich und ungenau und schwer verständlcih ausgedrückt :(
Falls es zu ausfürhlich zu erklären ist oder mir einfach grundwissen fehlt, kann mir jemand ein gutes Buch empfehlen, die Grudndlagen kann ich schon und Gebäudebau, Ticksystem etc klappt ja schon...
 
Zuletzt bearbeitet:
Hallo,

das Problem ist, dass du immer wieder in die selbe Variable schreibst.
Dadurch wird diese dann natürlich mit dem neuen Wert versorgt und behält den alten Wert nicht.

Hier ein Beispiel:
PHP:
<?php

$zaehler = 0;
while( $something = $something2 )
{
  $shipid = $gegnerfetch["$shipnumber"]["SID"];
  /* Das schreibt den Wert immer wieder in $shipid */
  $ship[$gegnerfetch["$shipnumber"]["SID"]][$zaehler] = "irgendwas"; 
  /* Das schreibt den neuen Wert in ein weiteres Array ($ship) mit einem Index der die ID
  des Schiffes ist ($gegnerfetch["$shipnumber"]["SID"]). */
  $zaehler++;
}

?>

Mit meinem Beispiel kannst du dann ein wenig rumspielen und kannst es deinen Wünschen anpassen. Aber auf jeden Fall kannst du dann die Werte über die ID des Schiffes aus dem Array auslesen. Jeder Wert der geschrieben wird, wird automatisch mit Hilfe der Variable $zaehler (kannst du natürlich auch anders nennen) in ein neues Feld geschrieben. Also z.B. $ship[Die ID des Schiffs][0] (Weil $zaehler = 0) beim nächsten Mal dann $ship[Die ID des Schiffs][1] usw.

Ich hoffe das hilft dir ein wenig weiter.

Gruß

Nephlim
 
Zuletzt bearbeitet:
Zurück