TYPE Typename


Beschreibung
Dieser Befehl ist für Type-Felder gedacht. Am Anfang der Type-Definition steht TYPE und am Ende END TYPE. Dazwischen stehen mehrere FIELD-Befehle.

Ein Type-Feld ist ein dynamisches Feld, welches die Einträge automatisch verwaltet. Die Einträge in Type-Feldern kann man nicht sofort ansprechen. Man muss zuerst zum richtigen Eintrag wechseln, und erst dann auslesen/speichern.

Types sind eine Ansammlung von Eigenschaften. Bestes Beispiel dafür sind "Space Invaders". Alle Aliens benötigen bestimmte Eigenschaften - z.B. Position auf dem Bildschirm. Nun kann man ja jedem Alien einige Variablen zuweisen: alien1x, alien1y, alien2x, alien2y... Dies ist aber sehr aufwendig. Man könnte auch mehrere DIM-Felder erzeugen und alle Daten dort abspeichern. Leider ändert sich ja die Anzahl der Aliens. Speziell für dieses Problem wurden Types entwickelt.


DIM-Felder sind einfacher zu benutzen und sollen bevorzugt angewendet werden.

Types können an weitere Types drangehängt werden. Somit entsteht eine hierarchische Struktur. Siehe dazu das dritte Beispiel!


Parameter
Typename = Name der Type-Kollektion


Rückgabewert
-


Beispiel

Dieses Programm demonstriert die Type-Befehle:

TYPE crafts
   FIELD x
   FIELD y
   FIELD dead
   FIELD graphic
END TYPE

FOR t = 1 TO 100
   alien.crafts = NEW crafts
   alien\x = RND(0,640)
   alien\y = RND(0,480)
   alien\dead = 0
   alien\graphic = 1
NEXT

alien.crafts = FIRST crafts
PRINT alien\x
PRINT alien\y
PRINT alien\dead
PRINT alien\graphic

alien = AFTER alien
PRINT alien\x
PRINT alien\y
PRINT alien\dead
PRINT alien\graphic

alien.crafts = LAST crafts
PRINT alien\x
PRINT alien\y
PRINT alien\dead
PRINT alien\graphic

alien = BEFORE alien
PRINT alien\x
PRINT alien\y
PRINT alien\dead
PRINT alien\graphic


Dieser Programm demonstriert Type mit Dim-Feld:

TYPE tile
   FIELD image
   FIELD extra
END TYPE
DIM map.tile(100,100)
map.tile(1,1)=NEW tile
map(1,1)\image=1
map(1,1)\extra=2


Dieses Programm demonstriert angehängte Types:

TYPE fabrik
   FIELD preis
   FIELD flaeche
   FIELD stromkosten
   FIELD papier.papier
END TYPE

TYPE papier
   FIELD baemeverbrauch
   FIELD papiermenge
END TYPE

LOCAL fabrik.fabrik

fabrik=NEW fabrik
fabrik\preis=1000000
fabrik\flaeche=1000
fabrik\stromkosten=9999
fabrik\papier=NEW papier
fabrik\papier\baemeverbrauch=1111
fabrik\papier\papiermenge=123


Siehe auch
AFTER, BEFORE, DELETE, DIM, EACH, END TYPE, FIELD, FIRST, INSERT, LAST, NEW