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???
LA PRACTICA HACE AL MAESTRO:3




Web site:DG games

#1 Diciembre 30, 2011, 03:48:31 AM Ultima modificación: Diciembre 30, 2011, 03:52:49 AM por Ciberman
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...
Cita de: CGM 2008CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
Plug-In para animaciones: http://ciberman.net/tweenline/

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.

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


si! me cuesta entender esto del d3d! solo estoy practicando para ver cuando empiezo un juego de carreras en 3D! muchas gracias  :D
LA PRACTICA HACE AL MAESTRO:3




Web site:DG games

#4 Diciembre 31, 2011, 11:35:10 PM Ultima modificación: Diciembre 31, 2011, 11:37:08 PM por elviskelley
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.*/