Tengo una esfera y quiero "girarlo" con el museo. Como el mouse solo se mueve en la coordenada X e Y lo que quiero hacer es rotal el plante solo en 2 coordenadas para ello use este código:
if mouse_check_button(mb_left)
{
RotX=x-mouse_x;
RotY=y-mouse_y;
}
draw_set_color(c_white);
d3d_transform_set_identity();
d3d_transform_add_rotation_x(RotX);
d3d_transform_add_rotation_x(RotY);
d3d_transform_add_translation(x,y,z);
d3d_draw_ellipsoid(-100,-100,-100,100,100,100, background_get_texture(background0) ,1,1,30);
d3d_transform_set_identity();
Esto no me da el resultado que quiero.
Se entiende lo que quiero hacer y lo que esta saliendo mal?
Si quieres que gire como la tierra solo debes girarlo sobre el eje Z, y si quieres que gire segun la posicion del mouse, solo de deja asi: Rotx=mouse_x, Roty=mouse_y, tambien puedes jugar con las variables: Rotz=mouse_x o Rotz=mouse_y.
espero te sirva de algo.
Gracias por la respuesta pero no es lo que busco.
Supongamos que tengo una figura cualquiera y quiero rotarla en X 90º y en Y otros 90º
ahora quiero que en vace al modelo rotado se vuelva a rotar sin alterar la previa rotación del modelo
En la imagen que subí muestra gráficamente lo que quiero hacer. [Espero que se entienda :o]
[gml] d3d_transform_add_rotation_x(RotX);
d3d_transform_add_rotation_x(RotY)[/gml]
Supongo que estará mal puesto, ambos rotas sobre x xDDD el segundo debería ser sobre y o sobre z.
[gml]if mouse_check_button(mb_left)
{
RotX=x-mouse_x;
RotY=y-mouse_y;
}
[/gml]
Primero, RotX y RotY son creadas en Create, no? Segundo, por qué haces x-mouse_x? Has probado...
[gml]RotX += mouse_x - previous_mouse_x;
RotY += mouse_y-previous_mouse_y;[/gml]
la idea es aumentar los ángulos respecto al anterior, si antes el ratón estaba en mouse_x = 50, y ahora en 70, pues rota. Deberás crear las variables previous_mouse para cada una e irlas actualizando (por ejemplo, asignarles las coordenadas del ratón al final del evento Draw, antes de usarlas en esta fórmula para rotar)
Esto es lo que he logrado.. es lo que necesitaba pero no del todo.
He creado una lista que a medida que el juego trascurre se volveria cada vez mas y mas grande.
¿Como puedo hacer para reducir el proceso?