Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: lapso21 en Febrero 10, 2018, 06:25:58 PM

Título: Giroscopio girar personaje (resuelto)
Publicado por: lapso21 en Febrero 10, 2018, 06:25:58 PM
Hola, me gustaría saber cómo se hace para que con el giroscopio gire. me voy a expresar mejor, el juego funciona los giros perfectamente en windows pero al pasarlo a android no responde como tendría que ser.

if image_index=4 and obj_nave.x<1
{
image_angle=-1
}

if image_index=4 and obj_nave.x>1
{
image_angle=+1
}

ya probé de varias formas me gustaría saber si hay que poner alguna condicion con android y windows por que en windows funciona pero para eso tengo otro codigo.

//teclado

if keyboard_check(vk_left)
{
x-=distancia_mover
if image_index=4
{
girar=false
}

}
if keyboard_check(vk_right)
{
x+=distancia_mover
if image_index=4
{
girar=true
}
}
if keyboard_check(vk_up)
{
y-=distancia_mover
}
if keyboard_check(vk_down)
{
y+=distancia_mover
}


else
//acelerometro
{
y+=device_get_tilt_x()*distancia_mover*3
x+=device_get_tilt_y()*distancia_mover*3

realmente soy nuevo en esto y me encanta, me gustaría que me puedan ayudar, aunque vivo pidiendo ayuda mas que aportar.
Título: Re:Giroscopio girar personaje
Publicado por: Clamud en Febrero 11, 2018, 06:45:03 PM
Separa los métodos de entrada de esta forma
[gml]
if (os_type == os_windows)
{
  // código para teclado
}
else
{
  // código para acelerómetro
}
[/gml]

Esta es una forma de girar un sprite
[gml]
xx = device_get_tilt_x();
yy = device_get_tilt_y();
zz = device_get_tilt_z();

image_angle = point_direction( 0,0, yy,xx );
[/gml]
Título: Re:Giroscopio girar personaje
Publicado por: lapso21 en Febrero 11, 2018, 08:51:28 PM
casi,
Cita de: Clamud en Febrero 11, 2018, 06:45:03 PM
Separa los métodos de entrada de esta forma
[gml]
if (os_type == os_windows)
{
  // código para teclado
}
else
{
  // código para acelerómetro
}
[/gml]

Esta es una forma de girar un sprite
[gml]
xx = device_get_tilt_x();
yy = device_get_tilt_y();
zz = device_get_tilt_z();

image_angle = point_direction( 0,0, yy,xx );
[/gml]

ahora para que solo gire de izquierda a derecha lo puse asi

xx = device_get_tilt_x();
yy = device_get_tilt_y();
zz = device_get_tilt_z();

image_angle = point_direction( 0,0, xx,00 );

pero cuando mira a la izquierda queda de cabeza como si pasara a 90°

esta accion se implementa solo en el index=4

seria

if image_index = 4
{
image_angle = point_direction( 0,0, xx,00 );
}

else

{
image_angle = 1
}

Título: Re:Giroscopio girar personaje
Publicado por: lapso21 en Febrero 14, 2018, 02:36:22 PM
Quiero decir que no logro girar a la izquierda sin que quede de cabeza u otra posición en grados, tiene que quedar en el eje x 1 -1
Título: Re:Giroscopio girar personaje
Publicado por: lapso21 en Febrero 17, 2018, 03:49:18 PM
no logre hacer que quede como decía, gracias igual, también aprendí cosas nuevas para otros proyectos.
Título: Re:Giroscopio girar personaje
Publicado por: Clamud en Febrero 18, 2018, 05:31:15 PM
Creo ya entiendo mejor lo que quieres lograr. Puedes utilizar solo el valor del acelerómetro en el eje X o en el eje Y dependiendo de la orientación de pantalla que utiliza el juego, dejando un pequeño umbral para evitar que el sprite se esté volteando constantemente cuando el teléfono está casi horizontal.
[gml]
umbral = 0.2;
xx = device_get_tilt_x();
if (xx > umbral) image_xscale = 1;
if (xx < -umbral) image_xscale = -1;
[/gml]