Spielkarte

Commeraldo

Erster Beitrag
Hi,

erster Beitrag in diesem Forum, also schön lieb sein ^^

So nun zu meiner Frage:
Mein Freund und ich sitzen jetzt ca. nen Monat an einem Browsergame. Wir haben Ahnung von PHP, MySQL und co. Die ersten Konturen stehen. Gebäude, Einheiten, Nachrichtensystem etc.
Mit stehen meine ich, sie funktionieren schon ^^ (Schreib ich extra dabei, weil ich schon ein paar Threads zum Thema Browsergame hier im Forum gelesen habe)
Einfaches Angreifen etc. funktioniert auch schon. Wir haben eine einfache Spielkarte, die einfach wie ein Schabrett aufgebaut ist, einfach per HTML geschrieben. Dort ist ein Link drinne, der den angeklickten Spieler auswählt und weitergibt. Aber wie bekommen wir eine dynamische Karte hin, die ja teilweise schon vorausgefüllt ist, also mit leeren Plätzen?

mfg Commeraldo
 

Ancient

Senior Member
Mmhh...na ja, ernsthaft verstehen was ihr gerade macht und woran es hängt kann man ja nicht wirklich erahnen aus dem Beitrag.
Normalerweise wird eine Map in Form einer Multidimensionalen Arrays aufgebaut, du hast also eine Kartengröße x * y und mindestens eine weitere Ebene die den "Geländetyp" (Wasser, Land, Berge etc.). Das Teil kannst du auch einfach in der Datenbank abspeichern: Spalten: x,y,z; Zeilen: 1 pro Feld.

Kommt jetzt halt alles drauf an: Die Karte liest man einmalig ein, speichert sie in der Session oder auch Spielerübergreifend irgendwo.

In der Kartenanzeige läufst du in einer Schleife über den gerade sichtbaren Ausschnitt der Karte (z.B. 10x10 Felder einer 1000x1000 großen Karten) und zeichnest pro Feld eine fertige Grafik abhängig vom Geländetyp.

Soweit so gut. Der Spieler und seine Einheiten/Gebäuden werden separat in einem weiterem n-dimensionalen Array (je Spieler z.B.) gehalten, wie man das aufgebaut ist jetzt mal egal, eine Variante ist, dass es die gleiche Größe hat wie die gesamte Spielkarte und in der Spalte "Z" die Einheiten Nr des Spielers enthält. In einem weiterem Array hast du dann die Einheiten des Spielers und deren aktuelle Eigenschaften.

Nachdem die Basiskarte aufgebaut ist, malst du dann die Einheiten aller Spieler über die Karte drüber. Wieder in einer Schleife wird das "Einheiten"-Arrays des aktiven Spielers (oder alle nacheinander) durchlaufen und abhängig vom Typ wird eine Grafik draufgemalt.

Arbeitet man nur mit solchen einfachen 2 Ebenen, kann man das ganze noch als HTML Tabelle mit Hintergrundgrafik in jeder Zelle für das Gelände und die Einheiten dann als transparente Grafik und Zellinhalt rendern.

Das war mal so ganz grob galaktisch für eine HTML Variante. Problematischer wird dann jetzt die Bewegung von Einheiten oder eine AJAX Variante. Das macht aber keinen Sinn da jetzt drüber zu reden, man weiss ja überhaupt nicht was ihr machen wollt, also ich weiss es nicht.
 
Oben