Wozu benötigt man INI Dateien?



Tja wozu braucht man sie?

Wenn man zum Beispiel ein Spiel hat wo man verschiedene Grafikauflösungen hat
da wäre es ja blöd wenn der Benutzer immer bei jedem Neustart des Spiels wieder
die Auflösung angeben müsste.
In INI Dateien kann man dies speichern. Dort kann man den Wert speichern.
Dieser geht nicht verloren und man kann ihn immer ändern (sofern man es will).
Selbst bei einen Neustart des Systems, da die INI Datei im selben Ordner wie
das Spiel gespeichert wird. Einziger Nachteil man kann sie per Hand ändern
Weshalb man dort nur Sachen wie Optionseinstellungen speichern sollte.
Man könnte auch so ein "Savegame" machen wo man die Lebensenergie
reinspeichert aber das könnte der Benutzer selber ändern.


Wie sieht eine Typische INI Datei aus?




Ja so sieht eine Typische INI Datei aus.
Um Vorweg schonmal ein paar Fragen zu beanantworten.
Nachher kommen ein paar Begriffe die ich hier schonmal erklären will:

Section:
Ist das was dort als " [Top] " steht. Man kann aber natürlich
nochmehr solcher Sektionen machen. Dies ist nützlich um wenn man später
verschiedene Sachen hat wie Grafik, Sound etc. Optionen so kann man diese
in Sektionen aufteilen, dient vorallem der Übersichtlichkeit

Key:
Ist das was dort als " Zahl " steht. Dies ist sozusagen
das Unterverzeichnis. Dort könnte man z.B. wenn man eine Sektion Sound
hat einen Key Lautstärke machen und dann noch einen Key Effekte um damit
bestimmte Einstellungen zu bestimmen.


Letzte Info bevor es zur Sache geht!



Da INI für eher etwas Fortgeschritte sind sollte man sich schon etwas mit
dem Game Maker auskennen. Außerdem möchte ich hier darauf hinweisen
das ich nur zeige wie man mit INI Dateien umgeht! Ich werde nicht genau
auf etwas bestimmtes eingehen sondern lediglich ein kleines Example
bereitstellen. Aber wenn ihr das hier richtig versteht solltet ihr genug Wissen
haben um es auf eure Bedürfnisse zurecht zu schneiden und es richtig verwenden
können. Um das Tutorial richtig zu Verstehen solltet ihr die gm6 Datei offen haben.


Jetzt arbeiten wir mit INI Dateien!



Als erste Erstellen wir ein Objekt. Bei meinem Example heißt es " ini_controller ".
So nun erstellen wir im Create Event erstmal 2 Variablen.
Bei mir sind es die Variablen inivariable und zahl .
Hier kommt Warscheinlich die erste Frage warum wir die
Variable inivariable mit GML als String gemacht haben. Das ist
ganz einfach, weil bei dem Game Maker 6.0 ein BUG herrscht
der macht wenn ihr eine 1 speichern wollt in der INI aus der 1
ungefähr das 0,99953256 das heißt wir müssen Zahlen als String
abspeichern. Deshalb machen wir es so.

So nun aber weiter im Step Event einfach immer +1
zur Variable zahl hinzufügen.

Im Draw Event einfach beide Variablen zeichnen.

So nun kommen wir zum Hauptteil der ganzen Geschichte
im Enter Event kommt nun der erste richtige Code auf uns
zu, um dies richtig zu erklären gehen wir Schritt für Schritt vor.

string(zahl);
So da wie schon gesagt wir Zahlen nicht richtig speichern können
müssen wir erstmal die Variable in einen String umwandeln.

ini_open("test.ini");
Jetzt öffnen wir die Datei test.ini Falls es diese Datei
nicht gibt wird diese Erstellt.

ini_write_string("Top","Zahl",string(zahl));
Mit diesem Befehl schreiben wir einen String in die INI .
Genauer gesagt in die Sektion Top und dort in den
Schlüssel(Key) Zahl . Wir müssen diese Angaben machen
damit der Game Maker weiß wo er es hinschreiben muss.

ini_close();
Das ist ganz einfach erklärt. Wir schließen mit diesem Befehl die INI Datei
Würden wir es nicht tun würde sie die ganze Zeit sozusagen offen sein.
Das würde nur unnötig RAM verbrauchen, man muss ja sparsam damit sein.

So nun kommen wir zum Space Event dort lesen wir aus der
INI Datei.

ini_open("test.ini");
Wir müssen ja erstmal die INI Datei öffnen damit wir aus ihr lesen können,
nichtwahr? Du kannst ja auch nicht aus einem zuen Buch lesen.

inivariable = ini_read_string("Top","Zahl",'');
So hiermit lesen wir aus der INI Datei.
Genauer gesagt lesen wir aus der Sektion Top und von da
aus dem Schlüssel(Key) Zahl . Dort wo wir gerade hineingeschreiben haben ;-)
So aber um zu sehen welchen wert wir gespeichert haben müssen wir
das was bei dem Schlüssel(Key) Zahl steht noch in eine Variable
speichern. Das speichern wir in die Variable inivariable
Und da wir ja im Draw Event gemacht haben das beide Variablen
Angezeigt werden sollen werden wir jetzt die Zahl , bei mir links , sehen!

ini_close();
So warum schließen wir die INI jetzt wieder?
Richtig damit nicht unnötig der RAM voll bleibt.

Zusammenfassung



So wir haben nun gelernt wie wir in eine INI Datei schreiben und wie
wir aus ihr lesen.
Bei meinen Example könnt ihr mit ENTER den jetzigen Wert der
Variable zahl schreiben.
Und mit SPACE zeig ihr den in der INI gespeicherten Wert an!

Ich hoffe ihr habt alles gut verstanden dies ist mein allererstes Tutorial
deshalb kann es sein das es nicht allzugut ist.
Aber ich hoffe ich konnte euch etwas beibringen.

Made by Defmaster ©