Gnet Objecte Sortieren?
Übersicht

![]() |
FobsiBetreff: Gnet Objecte Sortieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
Ich hab mich jetzt mal an BlitzMax gesetzt und ein kleines Spiel geschrieben. Das ganze würde ich jetzt gerne durch Gnet multiplayerfähig machen. Das ganze läuft auch schon so wie ich es will, nur im Multiplayer zeichnen kann ich es nicht richtig! Ich möchte gerne GnetObjecte anhand eines Z-Indexes Sortieren Beispielbild: ![]() Problem: ![]() Frage: Gibt es eine Möglichkeit GnetObjects die ja in ner Tlist gespeichert sind: BlitzMax: [AUSKLAPPEN] For Local o:TGNetObject=EachIn GNetObjects( host ) zu Sortieren? in etwa wie die folgende Methode? z.B: BlitzMax: [AUSKLAPPEN] Type Z Extends TGnetObject und dann irgendwas in Richtung: BlitzMax: [AUSKLAPPEN] SortList(GNetObjects( host ),True,Z.Compare_z) Gnet Beispiel Code: http://fobsi.ch/agc/gnetdemo.rar Wenn ich morgen Zeit hab schreib ich was kleines Beispiel falls das jetzt nicht verständlich ist. Es Grüsst Fobsi |
||
![]() |
Fobsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Ich habe das problem gelöst indem ich alle GNetObjecte in Lokale objecte umgewandelt habe und diese dann Update wenn sie sich verändern. es grüsst Fobsi |
||
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du das erläutern?
Für mich klingt das so, als würde der Zeitpunkt des Updates bestimmen, was als letztes (also oben drauf) gezeichnet wird. Das wäre ja seltsam, weil dann zwei Figuren, die voreinander abwechselnd in dieselbe Richtung gehen, sich immer abwechselnd überlappen Crappy Diagramm: Code: [AUSKLAPPEN] * = ist oben --> = bewegt sich als erstes nach rechts x-> = bewegt sich danach nach rechts (updated als letzter) A --> A x-> A* x-> A* --> A B* x-> B* --> B --> B x-> B* Zu deiner ursprünglichen Frage: Ich hätte die Weltobjekte in einem Typ abgelegt, der intern 2 Repräsentationen hat. Einmal eine Liste, damit man schnell alle Objekte bekommt, und einmal als 2D Array, das der Weltkarte entspricht. Das 2D Array würde unter der Haube verwendet, wenn du alle Objekte malst. Die Liste, wenn es z.B. um den Abgleich mit Netzwerkdaten geht. Apropos Netzwerkdaten. Wenn ich an Webserver-Synchronisation bei mobilen Apps denke, dann werden Dinge (z.B. Todos oder Chat-Nachrichten) mit einer einzigartigen ID (UUID) versehen. So schickt der Client an den Server dann die Anfrage "lösche Objekt mit ID xxxx-yyyy-..."; das geht natürlich genauso für Spiele, wo die Spieler Nachrichten wie "bewege Objekt aaaa-bbbb-.... auf Position (x,y)" schicken. Irgendwie so was wirst du ja auch haben. In diesem Fall würde ich statt einer Liste eine Map benutzen, die von der ID auf das Objekt "mappt". Dann kann man superschnell an das Objekt herankommen. |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
Fobsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
DivineDominion hat Folgendes geschrieben: Kannst du das erläutern?
Für mich klingt das so, als würde der Zeitpunkt des Updates bestimmen, was als letztes (also oben drauf) gezeichnet wird. Das wäre ja seltsam, weil dann zwei Figuren, die voreinander abwechselnd in dieselbe Richtung gehen, sich immer abwechselnd überlappen Crappy Diagramm: Code: [AUSKLAPPEN] * = ist oben --> = bewegt sich als erstes nach rechts x-> = bewegt sich danach nach rechts (updated als letzter) A --> A x-> A* x-> A* --> A B* x-> B* --> B --> B x-> B* Zu deiner ursprünglichen Frage: Ich hätte die Weltobjekte in einem Typ abgelegt, der intern 2 Repräsentationen hat. Einmal eine Liste, damit man schnell alle Objekte bekommt, und einmal als 2D Array, das der Weltkarte entspricht. Das 2D Array würde unter der Haube verwendet, wenn du alle Objekte malst. Die Liste, wenn es z.B. um den Abgleich mit Netzwerkdaten geht. Apropos Netzwerkdaten. Wenn ich an Webserver-Synchronisation bei mobilen Apps denke, dann werden Dinge (z.B. Todos oder Chat-Nachrichten) mit einer einzigartigen ID (UUID) versehen. So schickt der Client an den Server dann die Anfrage "lösche Objekt mit ID xxxx-yyyy-..."; das geht natürlich genauso für Spiele, wo die Spieler Nachrichten wie "bewege Objekt aaaa-bbbb-.... auf Position (x,y)" schicken. Irgendwie so was wirst du ja auch haben. In diesem Fall würde ich statt einer Liste eine Map benutzen, die von der ID auf das Objekt "mappt". Dann kann man superschnell an das Objekt herankommen. Danke dir DivineDominion! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group