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

Modelle erstellen

Wenn du große Modelle zeichnen willst ist es umständlich die ganzen Daten in jedem Step neu zu definieren. Um das zu umgehen kannst du Modelle erzeugen. Ein Modell besteht aus Primitiven und Formen. Wenn ein Modell erzeugt wurde kannst du es überall mit nur einem Funktionsaufruf zeichnen. Modelle können auch aus Dateien geladen und in sie gespeichert werden.

Bevor wir uns die Funktionen ansehen gibt es einen wichtigen Punkt: das Behandeln von Texturen. Wie schon gesagt werden Texturen aus Sprites und Hintergründen generiert. Die Indexe können zu verschiedenen Zeitpunkten verschieden sein. Deswegen kann ein Modell keine Texturinformation beinhalten. Nur beim Zeichnen kannst du die Textur bestimmen. Deswegen kannst du in einem Model nur eine Textur nutzen. Sonst musst du sie entweder zu einer zusammenfügen (und vorsichtig mit dem Koordinaten arbeiten) oder du musst mehrere Modelle nehmen. Der Vorteil ist das du dasselbe Modell mit mehreren Texturen zeichnen kannst.

Zum Erstellen, Laden, Speichern und Zeichnen existieren folgende Funktionen:

d3d_model_create() Erstellt ein Modell und gibt seinen Index zurück. Dieser Index wird in alle anderen Funktionen gebraucht.
d3d_model_destroy(ind) Zerstört das Modell, gibt seinen Speicher frei.
d3d_model_clear(ind) Leert das Modell, entfernt all seine Primitive.
d3d_model_save(ind, fname) Speichert das Modell in die angegebene Datei.
d3d_model_load(ind, fname) Läd das Modell aus der angegebenen Datei.
d3d_model_draw(ind, x, y, z, texid) Zeichnet das Modell an Position (x,y,z). texid ist die gewählte Textur. -1 bedeutet keine Textur. Wenn du das Objekt ändern willst nutze die zuvor beschriebenen Transformationsroutinen.

Für jede Primitive Funktion existiert ein Gegenstück für ein Modell. Die Funktionen sind dieselben, ausser das das erste Argument der Modellindex ist, und keine Texturinformation gebraucht wird.

d3d_model_primitive_begin(ind, kind) Fügt ein 3D Primitiv des angegebenen Typs hinzu: pr_pointlist, pr_linelist, pr_linestrip,pr_trianglelist,pr_trianglestrip oder pr_trianglefan.
d3d_model_vertex(ind, x, y, z) Fügt den Vertex (x,y,z) dem Modell hinzu.
d3d_model_vertex_color(ind, x, y, z, col, alpha) Fügt den Vertex (x,y,z) dem Modell hinzu, mit seiner eigenen Farbe und seinem Alphawert.
d3d_model_vertex_texture(ind, x, y, z, xtex, ytex) Fügt den Vertex (x,y,z) dem Modell hinzu, mit Position (xtex,ytex) in der Textur.
d3d_model_vertex_texture_color(ind, x, y, z, xtex, ytex, col, alpha) Fügt den Vertex (x,y,z) dem Modell mit Farbe und Alphawert hinzu.
d3d_model_vertex_normal(ind, x, y, z, nx, ny, nz) Fügt den Vertex (x,y,z) dem Modell hinzu, mit normalem Vektor (nx,ny,nz).
d3d_model_vertex_normal_color(ind, x, y, z, nx, ny, nz, col, alpha) Fügt den Vertex (x,y,z) dem Modell hinzu, mit normalem Vektor (nx,ny,nz), und mit eigener Farbe und Alphawert.
d3d_model_vertex_normal_texture(ind, x, y, z, nx, ny, nz, xtex, ytex) Fügt den Vertex (x,y,z) dem Modell hinzu, mit normalem Vektor (nx,ny,nz), mit Texturposition.
d3d_model_vertex_normal_texture_color(ind, x, y, z, nx, ny, nz, xtex, ytex, col, alpha) Fügt den Vertex (x,y,z) dem Modell hinzu, mit normalem Vektor (nx,ny,nz), mit Textur und Farbwerten.
d3d_model_primitive_end(ind) Beendet die Beschreibung eines Primitiven.

Neben Primitiven kannst du auch grundlegende Formen hinzufügen. Wiederum schauen die Funktionen fast gleich aus aber eben mit Modellindex und ohne Texturinformation:

d3d_model_block(ind, x1, y1, z1, x2, y2, z2, hrepeat, vrepeat) Fügt einen Block hinzu.
d3d_model_cylinder(ind, x1, y1, z1, x2, y2, z2, hrepeat, vrepeat, closed, steps) Fügt einen Zylinder hinzu.
d3d_model_cone(ind, x1, y1, z1, x2, y2, z2, hrepeat, vrepeat, closed, steps) Fügt einen Kegel hinzu.
d3d_model_ellipsoid(ind, x1, y1, z1, x2, y2, z2, hrepeat, vrepeat, steps) Fügt einen Ellipsoiden hinzu.
d3d_model_wall(ind, x1, y1, z1, x2, y2, z2, hrepeat, vrepeat) Fügt eine Wand hinzu.
d3d_model_floor(ind, x1, y1, z1, x2, y2, z2, hrepeat, vrepeat) Fügt einen Boden hinzu.

Das Benutzen von Modellen bringt ordentlich Geschwindigkeitszuwachs in deinem 3D Spiel, nutze sie wann immer es geht!

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