Startseite | Anpassen | Blog | Extras | Anmelden | Info
Handbuch | D&D icons | GML Parser | Archiv | Iso City
Benutzername: Passwort:  
Über | Funktionen | Verzeichnis | Banner | Kontakt

Den Game Maker benutzen
Den Game Maker benutzen

Data structures - Datenstrukturen

Diese Funktionalität ist nur in der registrierten Version des Game Maker verfügbar.

In Spielen muss man oftmals Informationen speichern. Beispielsweise musst du eine Liste von Dingen speichern, die eine Person mit sich führt oder du willst die Orte speichern, die noch erkundet werden müssen. Du kannst dafür Arrays (Datenfelder) verwenden. Wenn du aber kompliziertere Operationen ausführen willst, wie zum Beispiel Sortieren der Daten oder die Suche nach einem bestimmten Datenfeld, musst du große Teile von GML-Code schreiben, die langsam in der Ausführung sein können.

Um dies zu vermeiden besitzt Game Maker eine Anzahl eingebauter Datenstrukturen, auf die mittels Funktionen zugegriffen werden kann. Zur Zeit sind sechs verschiedene Arten von Datenstrukturen verfügbar: stacks (stapel), queues (Reihen), lists (Listen), maps (Abbildungen), priority queues (vorrangige Reihen) und grids (Gitter). Jede dieser Datenstrukturen wurde für den vorgesehenen Einsatzzweck optimiert (siehe unten).

Alle Datenstrukturen funktionieren vom Prinzip her gleich. Du kannst eine Datenstruktur mit einer Funktion erstellen, welche eine id für die Struktur zurückgibt. Du verwendest diese id, um auf die Struktur zuzugreifen. Wenn du die Struktur nicht mehr benötigst, vernichtest du sie, um Speicherplatz zu sparen. Du kannst soviele Strukturen gleichzeitig verwenden, wie du willst. Alle Strukturen können Zeichenketten (strings) oder reelle Werte (real values) speichern.

Beachte das die Datenstrukturen nicht beim Speichern eines Spieles gespeichert werden. Dazu musst du dann eigene Mechanismen entwickeln.

Beim Vergleichen von Werten, beispielsweise beim Suchen in einer map oder beim Sortieren einer Liste, muss Game Maker entscheiden, wann zwei Werte gleich sind. Für strings und integer values (ganzzahlige Werte) sieht die Sache einfach aus aber bei reellen Zahlen können leicht gleiche Zahlen durch Rundungsfehler verschieden werden. Zum Beispiel: (5/3)*3 wird nicht gleich 5 sein. Um dies zu vermeiden, wird eine Genauigkeit verwendet. Falls der Unterschied zwischen zwei Werten kleiner als diese Genauigkeit ist, werden sie als gleich betrachtet. Voreingestellt ist eine Genauigkeit von 0.0000001. du kannst diese Genauigkeit (precision) verändern durch folgende Funktionen:

ds_set_precision(prec) Setzt die Genauigkeit, die bei Vergleichen zugrunde liegt.

Diese Genauigkeit wird für alle Datenstrukturen verwendet, nicht aber für andere Vergleiche in GML!

Informationen über Datenstrukturen können auf folgenden Seiten gefunden werden:

Stacks
Queues
Lists
Maps
Priority Queues
Grids

Suche Suche


Alternative Versionen Alternative Versionen

Du kannst dieses Handbuch auch auf einer langen Seite (± 1.5 mb) ansehen.

Auch verfügbar in: Niederländisch Englisch Französisch

ZIP Download helpfile

Werbung Werbung

GameMaker Handbuch