Dibujando formas básicas

Existen varias funciones para dibujar formas básicas, como bloques y paredes. Nota que estas formas también funcionan correctamente con backface culling.

 

d3d_draw_block(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) Dibuja un bloque del color actual con las esquinas opuestas indicadas usando la textura indicada. Usa -1 para no usar una textura. hrepeat indica que tan seguido la textura debe ser repetida a través del borde horizontal de cada cara. vrepeat hace lo mismo con el borde vertical.

d3d_draw_cylinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,cerrado,steps) Dibuja un cilindro vertical usando el color actual en la caja de colisión indicada usando la textura indicada. Usa -1 para no usar una textura. hrepeat indica que tan seguido la textura debe ser repetida a través del borde horizontal de cada cara. vrepeat hace lo mismo con el borde vertical. closed indica si se debe cerrar la tapa y fondo del cilindro. steps indica cuantos pasos rotacionales deben ser tomados. Un valor típico es 24.

d3d_draw_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) Dibuja una pared vertical en el color actual con las puntas dadas usando la textura indicada. Usa -1 para no usar una textura. hrepeat indica que tan seguido la textura debe ser repetida a través del borde horizontal de cada cara. vrepeat hace lo mismo con el borde vertical.

d3d_draw_floor(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) Dibuja un piso (inclinado) en el color actual con las esquinas dadas usando la textura indicada. hrepeat indica que tan seguido la textura debe ser repetida a través del borde horizontal de cada cara. vrepeat hace lo mismo con el borde vertical.

 

La siguiente pieza de código dibuja dos bloques:

 

{
  var ttt;
  ttt = background_get_texture(back);
  d3d_draw_block(20,20,20,80,40,200,ttt,1,1);  
  d3d_draw_block(200,300,-10,240,340,100,ttt,1,1);  
}