Hallo leute,
Ich wollte mal mit euch mal Diskutieren welche Klassen zu einem RPG gehören und wie die von einander abhängen.
Bis jetzt habe ich alle möglichen funktionen und paar klassen zu testzwecken generiert, nun möchte ich die Funktionen in Klassen kapseln und das Ganze vernüftig realisieren.
Das sind so meine überlegungen:
Zunächst habe ich die Klasse World, das soll die Hauptklasse sein, die über Ajax Request aufgerufen werden soll.
Die Klasse world hat folgende Eigenschaften:
Map,Characters,Objects,Enemys,NPCs,Towns
Die Klasse hat Methoden wie displayWorld(), diese Methode soll mir einen JSON Object an mein Document schicken mit anzuzeigenden Maptiles, Spielfiguren,die sich auf dem Selben feld befinden wie meine Figur , Objekte(zb Schatztruhe) , Gegner(irgendwelche Monster) , NPCs und Städte.
Davor wird in der World klasse geprüft ob der Client auch seine Figur ausgewählt hat usw usw..
Das wären so die Grundgedanken für meine World Klasse.
Als nächstes wäre die Map Klasse.
Diese Klasse lädt eine Karten Datei und weis dadurch an welcher X/Y Koordinate sich welcher Tile befindet und weis auch ob ein Tile begehbar ist oder nicht.
Die Klasse Map sollte die Methode setDisplaySize($displayWidth,$displayHeight) besitzen. Anhand der aktuellen x/y position, meines Spielers und der Anzeigegröße, weis ich welche Tiles angezeigt werden sollten.
Zusätzlich wird diese Klasse die Methode getMapTiles() haben um die Tiles an die Klasse world zu übermitteln.
Dann wären 2 Weitere Klassen Player und Character.
Der Player kann sich in Account einloggen, kann sich einen Char erstellen, kann ein Char löschen und kann ihn Auswählen um mit ihm zu spielen.
Der Character hat eigenschaften wie HP,MP,Level usw und kann sich auf der karte bewegen, Enemys angreifen (aufruf der Battle klasse), Items einsammeln, Mit NPC reden(aufruf NPCDialog klasse). Sterben(Denke diese Methode gehört zu Battle klasse, da ich im Kampf sterben kann und nicht auf der Map)?
Das ist vorerst mein Meilenstein.
Ihr kennt euch sicherlich besser aus mit Klassen konstukten wie die Beziehungen zwichen den Klassen aufgebaut werden soll sprich wo könnte man da Interfaces benutzen, Abstrakte klassen, Singletons ,Vererbungen und halt sachen die ich überdenken sollte..
Vllt könnt ihr mir bei der Plannung enorm weiterhlefen;)
LG BlackScorp