Hallo,
Da ich gerade ersteinmal mit GML angefangen habe, habe ich mir vorgenommen Eure Ratschläge zu beherzigen und klein anzufangen. Irgendwann einmal, wenn ich aus der Anfangsphase heraus bin würde es mich reizen ein rundenbasiertes Weltraumstrategiespiel zu entwickeln. Keine Sorge - ich bleibe auf dem Teppich und weiß, daß das noch ein langer holpriger Weg ist. Deshalb habe ich mir gedacht - fang klein an und versuch ersteinmal ein paar Teilaspekte von solch einem Spiel zu erstellen. Die dabei gesammelten Erfahrungen werden später sicherlich nützlich sein.
Deshalb habe ich mich heute an einer Art Zufallskartengenerator in GML versucht.
Ziel des ganzen ist folgendes. Auf einer leeren Karte sollen eine gewisse Anzahl vom Spieler zu bestimmende Objekte (später einmal Sterne) an zufälligen Stellen positioniert werden.
Die X- und Y-Koordinaten der Objekte sollen in einer Liste gespeichert werden. Soweit so gut. Um zu überprüfen, daß auch wirklich Daten in die Liste gepackt werden, dachte ich mir - speicher ich sie in eine Datei, damit ich sie mir anschauen kann. Nebenbei lerne ich dann noch den Umgang mit Dateien (Dank Windapple´s Tutorial für GML-Anfänger).
Also habe ich folgendes getan:
Ich habe einen Raum mit einem netten Hintergrund erstellt und in diesen ein Kontrollobjekt eingefügt, welches das Ganze steuern soll.
in dem Kontrollobjekt habe ich einmal folgenden Code der bei Spielbeginn ausgeführt wird:
Alles anzeigen
Und einmal diesen Code in einem Key-Press-event um die daten aus der Liste zu speichern:
Alles anzeigen
Das ganze läuft auch ohne Fehlermeldung. Ich weiß, daß die Art wie ich die 10 Werte in die datei speicher sicherlich umständlich ist, aber es geht ja im Moment nur ums Prinzip.
Leider steht in der datei immer nur folgendes:
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
Daher Vermute ich, daß irgendwo bei der zufälligen Koordinatenerstellung etwas nicht stimmt. Ich habe auch mal die Rundung floor weg genommen - macht aber keinen Unterschied.
Wer hat eine Idee woran es liegen könnte? Vielen Dank im Voraus.
P.S. Bei der Programmausführung einfach nur auf OK bei der Abfrage klicken, da das Speichern in die Datei für 10 Werte ausgelegt ist.
Edit: Nicht wundern - es ist noch nichts enthalten, was wirklich Objekte platziert. das kommt im nächsten Schritt und soll die Daten aus der Liste als X und Y-Koordinaten verwenden.
Da ich gerade ersteinmal mit GML angefangen habe, habe ich mir vorgenommen Eure Ratschläge zu beherzigen und klein anzufangen. Irgendwann einmal, wenn ich aus der Anfangsphase heraus bin würde es mich reizen ein rundenbasiertes Weltraumstrategiespiel zu entwickeln. Keine Sorge - ich bleibe auf dem Teppich und weiß, daß das noch ein langer holpriger Weg ist. Deshalb habe ich mir gedacht - fang klein an und versuch ersteinmal ein paar Teilaspekte von solch einem Spiel zu erstellen. Die dabei gesammelten Erfahrungen werden später sicherlich nützlich sein.
Deshalb habe ich mich heute an einer Art Zufallskartengenerator in GML versucht.
Ziel des ganzen ist folgendes. Auf einer leeren Karte sollen eine gewisse Anzahl vom Spieler zu bestimmende Objekte (später einmal Sterne) an zufälligen Stellen positioniert werden.
Die X- und Y-Koordinaten der Objekte sollen in einer Liste gespeichert werden. Soweit so gut. Um zu überprüfen, daß auch wirklich Daten in die Liste gepackt werden, dachte ich mir - speicher ich sie in eine Datei, damit ich sie mir anschauen kann. Nebenbei lerne ich dann noch den Umgang mit Dateien (Dank Windapple´s Tutorial für GML-Anfänger).
Also habe ich folgendes getan:
Ich habe einen Raum mit einem netten Hintergrund erstellt und in diesen ein Kontrollobjekt eingefügt, welches das Ganze steuern soll.
in dem Kontrollobjekt habe ich einmal folgenden Code der bei Spielbeginn ausgeführt wird:
GML-Quellcode
- //Zufallskartengenerator mittels Koordinatenliste
- {
- var anzahl,zaehler;
- anzahl = 0
- zaehler = 0
- anzahl = get_integer("Wieviele Objekte sollen erstellt werden?",10); //Nachfrage Objektanzahl
- global.stats = ds_list_create(); //Listenerstellung
- while (anzahl <= zaehler)
- {
- ds_list_add(global.stats, floor(random(1240)+20)); // 0 = X1 = erste X-Koordinate
- ds_list_add(global.stats, floor(random(984)+20)); // 1 = Y1 = erste Y-Koordinate
- zaehler = zaehler+1
- }
- }
Und einmal diesen Code in einem Key-Press-event um die daten aus der Liste zu speichern:
GML-Quellcode
- //Listendaten in Datei speichern
- //ds_list_find_value(ds,position);
- {
- var file, text;
- file = file_text_open_write("usertext.txt"); //die Datei öffnen
- file_text_write_real(file,ds_list_find_value(global.stats,0));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,1));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,2));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,3));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,4));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,5));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,6));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,7));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,8));
- file_text_writeln(file);
- file_text_write_real(file,ds_list_find_value(global.stats,9));
- file_text_writeln(file);
- file_text_close(file); //die Datei wieder schließen; das nicht vergessen!
- }
Das ganze läuft auch ohne Fehlermeldung. Ich weiß, daß die Art wie ich die 10 Werte in die datei speicher sicherlich umständlich ist, aber es geht ja im Moment nur ums Prinzip.

Leider steht in der datei immer nur folgendes:
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
Daher Vermute ich, daß irgendwo bei der zufälligen Koordinatenerstellung etwas nicht stimmt. Ich habe auch mal die Rundung floor weg genommen - macht aber keinen Unterschied.
Wer hat eine Idee woran es liegen könnte? Vielen Dank im Voraus.
P.S. Bei der Programmausführung einfach nur auf OK bei der Abfrage klicken, da das Speichern in die Datei für 10 Werte ausgelegt ist.

Edit: Nicht wundern - es ist noch nichts enthalten, was wirklich Objekte platziert. das kommt im nächsten Schritt und soll die Daten aus der Liste als X und Y-Koordinaten verwenden.
Viele Grüße.
UPUAUT
UPUAUT
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Upuaut ()