Halo zusammen!
Ich programmiere derzeit ein Spiel, welches man über das Netzwerk, mit mehreren Personen spielen kann.
Nachdem ein Positionswechsel am Client registriert wurde, wird dieser (von jedem Client) an den Server geschickt. Dieser Server fügt die Positionswechsel zusammen und sendet sie via broadcast an alle registrierten Clients zurück.
Das gleiche habe ich bei einer Spielerliste. Diese wird im laufenden Spiel aktualisiert (wenn sich neue Spieler beim Server anmelden) und via broadcast herumgeschickt.
Da der Client natürlich über mehrere Klassen verfügt und die meisten von ihnen sowohl auf die Spielfelddaten, als auch auf die Spielerliste zugreifen müssen, habe ich viele static-Methoden, die in den Klassen z.B. für das Setzen der Listen und Daten zuständig sind (da sie nicht dem Konstruktor übergeben werden können). Das ist nicht gut.
Macht es einen Sinn, diese Daten in eine eigene Klasse auszulagern, in der sie dann lokal verwaltet werden und auf die alle Klassen des jeweiligen Clients zugreifen können?
Falls ja, wie realisiert man das ganze möglichst "professionell"?
Freue mich über jeden Hilfe!
Ich programmiere derzeit ein Spiel, welches man über das Netzwerk, mit mehreren Personen spielen kann.
Nachdem ein Positionswechsel am Client registriert wurde, wird dieser (von jedem Client) an den Server geschickt. Dieser Server fügt die Positionswechsel zusammen und sendet sie via broadcast an alle registrierten Clients zurück.
Das gleiche habe ich bei einer Spielerliste. Diese wird im laufenden Spiel aktualisiert (wenn sich neue Spieler beim Server anmelden) und via broadcast herumgeschickt.
Da der Client natürlich über mehrere Klassen verfügt und die meisten von ihnen sowohl auf die Spielfelddaten, als auch auf die Spielerliste zugreifen müssen, habe ich viele static-Methoden, die in den Klassen z.B. für das Setzen der Listen und Daten zuständig sind (da sie nicht dem Konstruktor übergeben werden können). Das ist nicht gut.
Macht es einen Sinn, diese Daten in eine eigene Klasse auszulagern, in der sie dann lokal verwaltet werden und auf die alle Klassen des jeweiligen Clients zugreifen können?
Falls ja, wie realisiert man das ganze möglichst "professionell"?
Freue mich über jeden Hilfe!