Compiler:MSVC++ 2008
Ich bin gerade dabei ein kleines Spiel mit Allegro zu programmieren und möchte, dass die Leveldaten aus einer Datei ausgelesen werden.
Außerdem habe ich mit Borland Turbo C++ 3.1 einen Leveleditor erstellt (Konsole) .
Mein Problem ist jetzt, dass ich die Levels die ich im Leveleditor erstellt habe auch wieder im Leveleditor auslesen kann aber nicht in meinem Spiel.
Nun wollte ich wissen ob es relevant ist, dass ich die beiden Programme mit unterschiedlichen Compilern geschrieben habe oder ob ich irgendeinen anderen Fehler gemacht habe.
Hier der Code aus dem Levelcreator
Code:
/*Nach der eingabe des Nutzers in Datei schreiben*/
FILE *ptfile;
ptfile=fopen("Data.dat","w");
fwrite(ptdata,sizeof(struct leveldatas),angriffswellen,ptfile);
fclose(ptfile);
free(ptdata);
/*Zum Test ob irgendwelche Fehler gemacht wurden (kommt wieder weg)*/
ptfile=fopen("Data.dat","r");
fread(&temp,sizeof(struct leveldatas),1,ptfile);
printf("%i",temp.waves);
ptdata=(struct leveldatas *)malloc(sizeof(struct leveldatas)*temp.waves);
fseek(ptfile,0,0);
fread(ptdata,sizeof(struct leveldatas),temp.waves,ptfile);
printf("%i,%i,%i",ptdata[0].zeilen,ptdata[1].zeilen,ptdata[2].zeilen);
fclose(ptfile);
free(ptdata);
Und hier der Code aus dem Spiel
Code:
FILE *ptfile;
ptfile=fopen(dateipfad,"r");
fseek(ptfile,0,0);
fread(&temp,sizeof(struct leveldatas),1,ptfile);
gegners->leveldata=(struct leveldatas *)malloc(sizeof(struct leveldatas)*temp.waves);
/*gegners ist eine Struktur in der sich ein Zeiger mit Namen leveldata auf struct leveldatas befindet*/
fseek(ptfile,0,0);
fread(gegners->leveldata,sizeof(struct leveldatas),temp.waves,ptfile);
hier noch die Struktur (bei beiden genau gleich)
Code:
struct leveldatas
{
int waves;
int zeilen;
int spalten;
int type;
int form;
};
Zuletzt bearbeitet: