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
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
void speichern () { struct S_Save { int S_Gold; int S_Holz; int S_Eisen; int S_Bevoelkerung; int S_Anzahl_Schwertkaempfer; int S_Anzahl_Reiter; int S_Anzahl_Bogenschuetze; int S_Anzahl_Katapult; }; S_Save Save; Save.S_Gold = Gold; Save.S_Holz = Rohstoff_Holz; Save.S_Eisen = Rohstoff_Eisen; Save.S_Bevoelkerung = Bevoelkerung; Save.S_Anzahl_Schwertkaempfer = CSoldat::Anzahl_Schwertkaempfer; Save.S_Anzahl_Reiter = CSoldat::Anzahl_Reiter; Save.S_Anzahl_Bogenschuetze = CSoldat::Anzahl_Bogenschuetze; Save.S_Anzahl_Katapult = CSoldat::Anzahl_Katapult; ofstream Output ("Save.sav", ios::binary); Output.write ((char*) &Save, sizeof (Save)); Output.close (); cout << "Gespeichert." << endl; }; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
void laden () { struct S_Save { int S_Gold; int S_Holz; int S_Eisen; int S_Bevoelkerung; int S_Anzahl_Schwertkaempfer; int S_Anzahl_Reiter; int S_Anzahl_Bogenschuetze; int S_Anzahl_Katapult; }; S_Save Save; ifstream Input ("Save.sav", ios::binary); Input.read ((char*) &Save, sizeof (Save)); Input.close (); Gold = Save.S_Gold; Rohstoff_Eisen = Save.S_Eisen; Rohstoff_Holz = Save.S_Holz; Bevoelkerung = Save.S_Bevoelkerung; CSoldat::Anzahl_Schwertkaempfer = Save.S_Anzahl_Schwertkaempfer; CSoldat::Anzahl_Reiter = Save.S_Anzahl_Reiter; CSoldat::Anzahl_Bogenschuetze = Save.S_Anzahl_Bogenschuetze; CSoldat::Anzahl_Katapult = Save.S_Anzahl_Katapult; cout << "Geladen." << endl; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
struct SRessourcen { int S_Gold; int S_Holz; int S_Eisen; int S_Bevoelkerung; }; struct SKrieger { int S_Anzahl_Schwertkaempfer; int S_Anzahl_Reiter; int S_Anzahl_Bogenschuetze; int S_Anzahl_Katapult; }; ... SKrieger Krieger ; SRessourcen Ressourcen; ... save() { ... Output.write ((char*) &Ressourcen, sizeof (SRessourcen )); Output.write ((char*) &Krieger , sizeof (SKrieger)); } ... |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
das würde so nicht ganz klappen, weil krieger, reiter etc vererbte klassen der "Basisklasse" CSoldat sind. die Anzahl_xyz sind deshalb als static int deklariert weil sie a) in der basisklasse erstellt werden und b) in allen vererbten klassen und der main() verwendet werden.Zum Beispiel könntest du die struktur global definieren und auf Splitten sowie günstigere namen verteilen, zB in struct Ressourcen, struct Krieger.
meinst du einfach für jeden variable ne eigene Output.write zeile?Zitat
oder eben wie schon bekannt mit manueller Zuweisung der einzelnen Komponenten
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige