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
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Checkmateing« (27.07.2013, 15:10)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ich hab die Framework Referenz da jetzt einfach mal rausgeworfen und hab das Sprite ins Unit_Managment geschoben. Solange es bei einem einfachen Sprite bleibt, wird es dort jetzt auch drin bleiben, sollte ich aber Animationen noch vorsehen, werd ich wohl früher oder später vor dem gleichen Problem wieder stehen, nur mit einer anderen Klasse dann.
Was ich an dem aber jetzt noch nicht verstehe, warum bekomme ich den Fehler wenn ich einen leeren Vector in einen anderen Vector schieben will? Das Object als einzelnes kann ich ja wieder in einen Vector schieben ohne das ich Probleme bekomme. Aber warum ausgerechnet bei dem doppelten Vector?
Die vernünftigste Lösung wäre also, sollte ich die Referenz drin behalten mögen, die c_units per new auf den Heap zu erzeugen oder? Ich frag deswegen noch, weil ich mir mit dem Aufbau des Programms noch nicht sicher bin, weil ich noch garnicht weiß was ich alles drin haben will. Also könnte es durchaus sein das ich später wieder einen Zugriff auf das Framework in der c_unit bräuchte. Oder der Fall im ersten Absatz trifft zu.
C-/C++-Quelltext |
|
1 2 3 4 5 |
std::vector< c_unit > test; c_unit temp; test.push_back( temp ); |
C-/C++-Quelltext |
|
1 2 3 4 5 |
std::vector< std::vector< c_unit > > test; std::vector< c_unit > temp; test.push_back( temp ); |
Der Fehler ist erst hier aufgetreten, sobald ich einen doppelten Vector hatte:
C-/C++-Quelltext
1 2 3 4 5 std::vector< std::vector< c_unit > > test; std::vector< c_unit > temp; test.push_back( temp );
Warum hier das eine Funktioniert und das andere nicht meinte ich? Sieht man auch im Code auf der ersten Seite, da hatte ich auch kommentiert das das eine geht und das andere den Fehler produziert. Ich hatte zuerst den Code schon mit einem einfachen Vector wo er halt Problem los lief, hab ihn dann auf den doppelten Vector gewechselt, wegen verschiedenen Einheiten Gruppen ( Spieler , Verbündete, Gegner ) und schon hatte ich den Fehler.
C-/C++-Quelltext |
|
1 2 3 4 5 |
std::vector< std::vector< c_unit > > test; std::vector< c_unit > temp; test.push_back( std::move(temp) ); |
Polymorphie, Vererbung werde ich wahrscheinlich garnicht brauchen. Ich habs in einem meiner aller ersten Programme schon mal verwendet, seit dem bin ich immer ohne ausgekommen.
Dazu sollte ich sagen, das System hat auch Komplexe Fertigkeiten erlaubt, die sich durch beliebige Effekte, komplett ändern konnten und das ohne Vererbung oder Polymorphie.
Werbeanzeige