Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: D-jinn en Diciembre 30, 2011, 01:57:41 AM

Título: Duda sobre giro axis "X" d3d
Publicado por: D-jinn en Diciembre 30, 2011, 01:57:41 AM
tengo un problema! con el giro horizontal en d3d! tengo un juego de carreras! y quiero que mi auto gire en "X"! solo quiero reemplazar esto!

[gml]image_angle=direction[/gml]

como seria ese gml en d3d???
Título: Re: Duda sobre giro axis "X" d3d
Publicado por: Ciberman en Diciembre 30, 2011, 03:48:31 AM
ser?a algo asi:
[gml]
d3d_transform_set_identity(); // vuelve a default las transformaciones
d3d_transform_add_rotation_x(direction); // a?ade una rotaci?n en el eje X de direction grados
d3d_transform_add_translation(x,y,z); // a?ade una translaci?n a la posici?n x,y,z
d3d_model_draw(mimodelo,0,0,0,mitextura); // dibuja tu modelo
d3d_transform_set_identity(); // vuelve a default las transformaciones.
[/gml]


no te preocupes, a mi me cost? mucho comprender las transformaciones... debe ser la parte m?s dificil del 3D... hay muchos tutoriales, conviene revisarlos. Normalmente dir?a, lee el manual... pero solo en este caso el manual no sirve de mucho sin un ejemplo a mano...
Título: Re: Duda sobre giro axis "X" d3d
Publicado por: Jucarave en Diciembre 30, 2011, 04:05:04 AM
as? es, pero si has seguido los ejemplos del 3d donde se pone:

[gml]d3d_set_projection(x1,y1,z1,x2,y2,z2,0,0,1);
//La parte del 0,0,1[/gml]

entonces el eje que te ayudaria seria el z:

[gml]d3d_transform_add_rotation_z(direction);
//En el ejemplo de cirberman cambia el x por z
[/gml]

Pero todo esto depende de la orientaci?n de tu auto.

Saludos.
Título: Re: Duda sobre giro axis "X" d3d
Publicado por: D-jinn en Diciembre 30, 2011, 04:29:54 AM
si! me cuesta entender esto del d3d! solo estoy practicando para ver cuando empiezo un juego de carreras en 3D! muchas gracias  :D
Título: Re: Duda sobre giro axis "X" d3d
Publicado por: elviskelley en Diciembre 31, 2011, 11:35:10 PM
image_angle=direction en 3D es asi.
Event draw
d3d_transform_set_identity();
d3d_transform_set_translation(0,0,0);
d3d_transform_add_rotation_z(direction); //como ves este es el que indica que el image_angle sea = a direction por eso solo coloque direction.
d3d_transform_add_translation(x,y,0);
//ahora aca es donde dibujas la figura sea el cubo esfera modelo etc..
/*Ejemplo...
d3d_model_draw(global.model_mimodelo,0,0,0,sprite_get_texture(texura,0))
d3d_draw_block(0,0,0,16,16,16,sprite_get_texture(texura,0),1,1);
d3d_draw_ellipsoid(0,0,0,16,16,16,sprite_get_texture(texura,0),1,1,32);
d3d_draw_cylinder(0,0,0,16,16,16,sprite_get_texture(texura,0),1,1,1,32);
Cualquiera es esas opciones de dibujo */
d3d_transform_set_identity();
/* Algo importante en los 6 primero valores osea estos 0,0,0,16,16,16 coloca solo numeros, no uses algo como esto x,y,0,16,16,16 por que dara un error, la razon es que vuelves a reposicionar el mundo 3D, bueno asi lo ley.
Lo unico que debes modificar en este codigo es la parte desde Enemplo... hasta Cualquierda de esas.... osea el dibujo.*/