speicherfunktion integrieren in mein Spiel
-
Hallo,
ich habe mir selbst ein Spiel geschrieben in C und möchte gerne eine Funktion integrieren, die folgendes beinhaltet: (Eigentlich soll sie nur den Spielstand speichern)
einlesen von bestimmten daten aus einer datei
-lebenspunkte (aber die beim letzten speichern)
-waffe und die Munition
und noch ein paar andere Sachen.
Natürlich soll sie wenn ich dann die Funktion benütze die Daten reinspeichern in die Datei, damit ich später wieder an dem Punkt weitermachen kann.Ich hoff mir kann jemand helfen.
MFG
Darkmaster
P.S: Weiß jemand, wie man das Icon (also das kleine Bildchen von meiner .exe) von meinem Programm ändert, wenn ichs unter Visual Studio schreib?
-
hi,
also für das speichern eines spielstandenes gibts natürlich sehr viele verschiedene wege. wenn es sich um ein simples spiel handelt kannst du die lebenspunkte usw einfach in eine textdatei schreiben beim speichern und beim laden wieder einlesen. etwahp=89
ammo=535
...etwas schöner in xml form
<savegame>
<hp>89</hp>
<ammo>535</ammo>
</savegame>wobei aber natürlich jeder die datei manipulieren kann. falls du es nicht in klartext schreiben willst kannst du es auch irgendwie verschlüsseln bevor du es rausschreibst und wieder entschlüsseln beim einlesen
hth
lordy
-
Mach einfach eine Struktur, wo du alle relevanten Daten drin hast:
struct Spielstand { int score; int waffen[10]; ... };
/* schreiben */ struct Spielstand s; FILE *file = fopen("spielstand", "rb"); fwrite(&s, sizeof(struct Spielstand), file);
/* lesen */ struct Spielstand s; FILE *file = fopen("spielstand", "wb"); fread(&s, sizeof(struct Spielstand), file);
Das ist dann auch binär, und nicht so einfach zu manipulieren.
-
Sry Stefan, aber ich habs leider nicht ganz hingekriegt. er zeigt mir zuviele fehler an. deshalb hab ich mal eine kurzversion gemacht.
int lebenspunkte=30, credits=100; typedef struct Spielstand { int lebenspunkte; int credits; }t_satz; int main (void) { printf("Start \n"); //Lebenspunkte laden falls vorhanden printf("deine lebenspunkte: %i\n",lebenspunkte); printf("deine credits: %i\n",credits); getchar(); //jetzt werden sie verändert lebenspunkte=lebenspunkte+10; credits=credits-50; printf("deine lebenspunkte: %i\n",lebenspunkte); printf("deine credits: %i\n",credits); getchar(); //hier speichern getchar() //hier gespeicherte ausgeben printf("deine lebenspunkte: %i\n",lebenspunkte); printf("deine credits: %i\n",credits); printf("Ende"); getchar(); }
Die Datei möchte ich beispielsweise DARK.dat nennen.
Ich hoff du kannst mir da nochmal helfen.
MFGDarkmaster
-
du musst schon eine instanz von 't_satz' erzeugen. mit 'nem typedef allein gehts nicht.