Home | Aanpassen | Blog | Extra's | Log In | Info
Handleiding | D&D iconen | GML Parser | Archief | Iso City
Gebruikersnaam: Wachtwoord:  
Over ons | Features | Directory | Banners | Contact

Het ontwerpen van spellen met Game Maker
Het ontwerpen van spellen met Game Maker

Modellen creëren

Als je grote modellen moet tekenen is het nogal duur om alle verschillende tekenfuncties opnieuw en opnieuw op te roepen in elke step. Om dit te voorkomen kun je modellen creëren. Een model bestaat uit een aantal getekende primitieven en vormen. Zodra een model is gecreëerd kun je het op verschillende plaatsen tekenen met slechts één oproep. Modellen kunnen ook worden geladen van een bestand en opgeslagen worden in een bestand.

Voordat ik de verschillende beschikbare functies geef is er één belangrijk punt: het handelen met texturen. Als eerder beschreven worden texturen genomen van sprites en achtergronden. De indexen van de texturen kunnen verschillen op verschillende momenten. Met gevolg dat modellen geen textuurinformatie bevatten. Alleen als je een model tekent geef je een texture op. Dus kun je slechts één texture in een model gebruiken. Als je meerdere texturen moet gebruiken moet je ze of erin combineren (en handel voorzichtig met textuurcoördinaten), of moet je meerdere modellen gebruiken. Het voordeel hiervan is dat je eenvoudig hetzelfde model met verschillende texturen kunt tekenen.

Om modellen te creëren, te laden, op te slaan en te tekenen bestaan de volgende functies:

d3d_model_create() Creëert een nieuw model en geeft zijn index. Deze index wordt in alle andere functies die met modellen te maken hebben gebruikt.
d3d_model_destroy(ind) Vernietigt het model met de gegeven index en maakt zijn geheugen vrij.
d3d_model_clear(ind) Wist het model met de gegeven index, d.w.z. verwijdert al zijn primitieven.
d3d_model_save(ind, bnaam) Slaat het model op met de gegeven bestandsnaam.
d3d_model_load(ind, bnaam) Laadt het model van de gegeven bestandsnaam.
d3d_model_draw(ind, x, y, z, texid) Tekent het model op positie (x,y,z). texid is het texture dat moet worden gebruikt. Gebruik -1 als je geen texture wilt gebruiken. Als je het model wilt draaien, vergroten of verkleinen kun je de eerder beschreven transformatieroutines gebruiken.

Voor elke primitive functie is een gelijke die hem toevoegt aan een model. De functies hebben dezelfde argumenten als eerder beschreven uitgezonderd dat elk een eerste argument heeft, de index van het model, en dat er geen textuurinformatie wordt gegeven.

d3d_model_primitive_begin(ind, type) Voeg een 3D primitive aan het model toe van het aangegeven type: pr_pointlist, pr_linelist, pr_linestrip, pr_trianglelist, pr_trianglestrip of pr_trianglefan.
d3d_model_vertex(ind, x, y, z) Voeg vertex (x,y,z) toe aan het model.
d3d_model_vertex_color(ind, x, y, z, klr, doorzichtigheid) Voeg vertex (x,y,z) toe aan het model, met zijn eigen kleur en doorzichtigheid.
d3d_model_vertex_texture(ind, x, y, z, xtex, ytex) Voeg vertex (x,y,z) toe aan het model met positie (xtex,ytex) in de texture.
d3d_model_vertex_texture_color(ind, x, y, z, xtex, ytex, klr, doorzichtigheid) Voeg vertex (x,y,z) toe aan het model met textuur- en kleurwaarden.
d3d_model_vertex_normal(ind, x, y, z, nx, ny, nz) Voeg vertex (x,y,z) toe aan het model, met normaal vector (nx,ny,nz).
d3d_model_vertex_normal_color(ind, x, y, z, nx, ny, nz, col, alpha) Voeg vertex (x,y,z) toe aan het model, met normaal vector (nx,ny,nz), en met zijn eigen kleur en doorzichtigheid.
d3d_model_vertex_normal_texture(ind, x, y, z, nx, ny, nz, xtex, ytex) Voeg vertex (x,y,z) toe aan het model, met normaal vector (nx,ny,nz), met texture positie.
d3d_model_vertex_normal_texture_color(ind, x, y, z, nx, ny, nz, xtex, ytex, klr, doorzichtigheid) Voeg vertex (x,y,z) toe aan het model, met normaal vector (nx,ny,nz), met textuur- en kleurwaarden.
d3d_model_primitive_end(ind) Beëindig de beschrijving van de primitive in het model.

Behalve primitieven kun je ook basisvormen aan de modellen toevoegen. Opnieuw zien de functies er bijna hetzelfde uit, maar met een model index en zonder textuurinformatie:

d3d_model_block(ind, x1, y1, z1, x2, y2, z2, hherhaling, vherhaling) Voegt een blokvorm toe aan het model.
d3d_model_cylinder(ind, x1, y1, z1, x2, y2, z2, hherhaling, vherhaling, gesloten, stappen) Voegt een cilindervorm toe aan het model.
d3d_model_cone(ind, x1, y1, z1, x2, y2, z2, hherhaling, vherhaling, gesloten, stappen) Voegt een conusvorm toe aan het model.
d3d_model_ellipsoid(ind, x1, y1, z1, x2, y2, z2, hherhaling, vherhaling, stappen) Voegt een ellipse vorm toe aan het model.
d3d_model_wall(ind, x1, y1, z1, x2, y2, z2, hherhaling, vherhaling) Voegt een muurvorm toe aan het model.
d3d_model_floor(ind, x1, y1, z1, x2, y2, z2, hherhaling, vherhaling) Voegt een vloervorm toe aan het model.

Het gebruik van modellen kan de snelheid van de graphics in je 3D spellen bespreekbaar verhogen en je zou ze zoveel mogelijk moeten gebruiken.

Zoeken Zoeken


Alternatieve versies Alternatieve versies

Je kan de handleiding ook lezen op een lange pagina (± 1.5 mb)

Ook beschikbaar in: Engels Frans Duits

ZIP Download helpfile

Advertentie Advertentie

GameMaker Handleiding