Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

11

04.01.2011, 00:56

Das nen Array nicht gleich nem Vector ist ist mir bewusst. War nicht weiter oben mal die Rede von Arrays? Hatte ich so in Erinnerung beim tippen. Naja gut dann vergiss was ich geschrieben habe;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

12

04.01.2011, 15:17

Also wenn du aber schon eine Klsse implementierst, dann würde ich aber einfach eine Tiles-Klasse erstellen, die eine x und eine y Position enthält und jedes Objekt hat dann eben als Member ein Tile-Objekt. Die ganzen Objekte sammelst du dann in einem Vektor. Also zumindest stelle ich mir das in sofern sinnvolller vor, da es ja auch Tiles geben kann, die einfach leer sind. Wenn du aber eine Map-Klasse schreibst, die einen Vektor-Index in einen 2D-Wert umrechnet, dann brauchst du ja auch für leere Felder Einträge im Vektor. Bei mir hätest du dann nur wirklich existierende Objekte im Vektor.

13

04.01.2011, 16:44

Ich hoffe, ich hab dich richtig verstanden, Fred ...
Also wenn ich es so machen würde, wie du es vorschlägst, müsste ich dann nicht immer alle Objekte des Gesammten Vektors überprüfen, weil dann die Suche per Index wegfällt?
Das würde doch länger dauern, als wenn man einfach auch für die leeren Felder einen Eintrag im Vektor hätte?

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

14

04.01.2011, 17:05

Ja gut das ist widerum auch richtig. Man könnte mein System aber auch so verwenden, dass man es als std::map<tile*, object*> implementiert. Dann hat man zu jedem Feld, das ein Objekt enthält einen Eintrag, auf den man relativ einfach zugreifen kann, und zu den anderen nicht.
Es ist natürlich auch incht verkehrt alle Felder in einen Vektor rein zu packen, aber da muss man dann halt imo ein bisschen mehr aufpassen, dass man nicht mehr leeren Feldern irgendwas macht, was dann logischerweise nicht funktioniert. Ich habe in meiner Facharbeit auch einen Vektor verwendet, der für jedes Feld ein Element gespeichert hat und bin der Meinung ich hätte damals bessere Wege finden können(habe es aber auch nicht sonderlich sauber implementiert^^).

15

04.01.2011, 17:46

Hmm ... ich denke ich werde dennoch bei der Variante bleiben, dass man auch leere Felder im Vektor hat.
Trotzdem Vielen Dank für deinen Vorschlag :D

16

04.01.2011, 17:59

Also ich habe mir für mein aktuelles Projekt ein 2 Dimensionales Array verwendet.
Ich habe einen Editor, mit dem ich mit dem die Größe der Map bzw. des Levels zu beginn festlegen kann und dieses dann einfach mit der Maus füllen kann.
Da dein Spiel grafisch wohl aber aufwendiger ist, als meines (benutze nur 1 farbige Klötze für die Map), braucht es wahrscheinlich etwas mehr Aufwand für den Editor.

lg chaia

17

04.01.2011, 18:01

Im Prinzip mach ich es genauso, nur eben über einen Vektor mit einer Dimension ;)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

18

04.01.2011, 22:24

Aus meiner Erfahrung mit Physiksimulationen,Benchmarking und MMO kann ich nur den Empfehlungen bei dynamischen Größen auf möglichst niederdimensionale Containestrukturen zurückzugreifen beipflichten (interessanter Aspekt ist, dass z.B. das "teuerstes" an der Nutzung einer std::vector<std::vector <non_POD> > > Lösung das Deallokieren ist).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige