Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Luis En en Septiembre 09, 2017, 09:17:14 AM

Título: ¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 09, 2017, 09:17:14 AM
Estoy haciendo otra práctica utilizando el mecanismo de juego de Geometry Dash. Y quisiera saber como hago para que mi personaje gire cuando salte o esté en el aire como en el juego original de Geometry Dash.

Porfa, enseñenme :D

Se agradece el tiempo que me tomen de responder :)
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: cristopher2545 en Septiembre 09, 2017, 09:19:13 AM
tienes algun codigo para el movimiento?
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 09, 2017, 10:06:42 AM
Para el movimiento le puse al objeto la velocidad horizontal en 6. Y salta al presionar la tecla <Space>.
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: bygdle en Septiembre 09, 2017, 05:43:38 PM
¿Usas código o acciones DnD?
Si el juego es de plataformas, ¿cuál es el valor de la gravedad?
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 10, 2017, 07:45:49 AM
Uso DnD, y el juego es como el Geometry Dash, la gravedad que tiene es de 0.9. Salta al presionar la tecla <Space>
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 10, 2017, 07:59:36 AM
Cita de: NiuWeb en Septiembre 09, 2017, 05:43:38 PM
¿Usas código o acciones DnD?
Si el juego es de plataformas, ¿cuál es el valor de la gravedad?

Ésta es una captura de la prueba que hice.
Y si uso DnD, gravedad 0.9
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Clamud en Septiembre 10, 2017, 07:18:55 PM
Mejor usa GML, es más rápido programar que en DnD.

Encontré un método de girar como en Geometrý Dash. Es importante no girar la caja de colisión (no modificar image_angle) para no complicar las colisiones, lo mismo se hace en GD.

Evento Create
[gml]
vAngular = 8; //velocidad angular
angulo = 0; //angulo del sprite
tope = 270; //angulo tope cuando aterriza
[/gml]

Eveno Step
[gml]
if place_meeting( x, y+1, obj_piso ) //tocando el piso
{
   if( angulo > tope ) //si no ha llegado al tope
      angulo -= vAngular; //girar
   if( angulo <= tope ) //si ha llegado al tope
      angulo = tope; //detener
}
else //en el aire
{
   angulo -= vAngular; //girar
   if( angulo < tope )tope -= 90; //nuevo tope
   if( tope < 0 )tope += 360; //evitar tope negativo
   if( angulo < 0 )angulo += 360; //evitar angulo negativo
}
[/gml]

Evento Draw
[gml]
draw_sprite_ext( sp0,0, x,y, 1,1, angulo,c_white,1);
[/gml]
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 11, 2017, 07:54:18 AM
Wowwwwwww compañero, sabes mucho, gracias por contestar. Ahora lo pruebo y te digo como me fue :D :D :D :D :)
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 11, 2017, 08:12:37 AM
Cita de: Clamud en Septiembre 10, 2017, 07:18:55 PM
Mejor usa GML, es más rápido programar que en DnD.

Encontré un método de girar como en Geometrý Dash. Es importante no girar la caja de colisión (no modificar image_angle) para no complicar las colisiones, lo mismo se hace en GD.

Evento Create
[gml]
vAngular = 8; //velocidad angular
angulo = 0; //angulo del sprite
tope = 270; //angulo tope cuando aterriza
[/gml]

Eveno Step
[gml]
if place_meeting( x, y+1, obj_piso ) //tocando el piso
{
   if( angulo > tope ) //si no ha llegado al tope
      angulo -= vAngular; //girar
   if( angulo <= tope ) //si ha llegado al tope
      angulo = tope; //detener
}
else //en el aire
{
   angulo -= vAngular; //girar
   if( angulo < tope )tope -= 90; //nuevo tope
   if( tope < 0 )tope += 360; //evitar tope negativo
   if( angulo < 0 )angulo += 360; //evitar angulo negativo
}
[/gml]

Evento Draw
[gml]
draw_sprite_ext( sp0,0, x,y, 1,1, angulo,c_white,1);
[/gml]

Amigo, me sale éste error:

ERROR in
action number 1
of Draw Event
for object Obj_Dashi:

Error in code at line 1:
   draw_sprite_ext( sp0,0, x,y, 1,1, angulo,c_white,1);
                   ^
at position 18: Unknown variable sp0

Porqué? D':
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: bygdle en Septiembre 11, 2017, 08:16:08 AM
Ahí debes poner el nombre de tu sprite, por ejemplo:
[gml]
draw_sprite_ext(mi_sprite_jugador,0, x,y, 1,1, angulo,c_white,1);
[/gml]
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 11, 2017, 08:22:42 AM
Cita de: NiuWeb en Septiembre 11, 2017, 08:16:08 AM
Ahí debes poner el nombre de tu sprite, por ejemplo:
[gml]
draw_sprite_ext(mi_sprite_jugador,0, x,y, 1,1, angulo,c_white,1);
[/gml]

Ahhh ok, entendido. Ahora al empezar el sprite me aparece echado y cuando presiono saltar gira no en su eje, sino como un eje mucho más arriba de mi sprite. Y al dejar de presionar "saltar", se queda en el aire avanzando como si fuera el piso, ayuda D:
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Clamud en Septiembre 11, 2017, 07:31:25 PM
En la ventana de propiedades del sprite presiona el botón "Center", para centrar el origen del sprite.
Debes poner gravedad para que no se quede en el aire.
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Luis En en Septiembre 12, 2017, 09:07:47 AM
Cita de: Clamud en Septiembre 11, 2017, 07:31:25 PM
En la ventana de propiedades del sprite presiona el botón "Center", para centrar el origen del sprite.
Debes poner gravedad para que no se quede en el aire.

Ajá!! genial amigo, si funciona :D, solo que al presionar saltar gira 2 lados por salto, no 1 lado como en GD, y cuando salto seguidamente 3 plataformas o más manteniendo presionado "saltar" gira sin parar, asi esté en el suelo D:
No habrá una manera de que cada vez que toque el suelo, deje de girar totalmente, porque mientras mantengo presionado "saltar" cuando paso plataformas consecutivas, sigue girando aunque toque las plataformas.

Muchas gracias por todo el tiempo que te tomas en contestar maestrazo :D :D :)
Título: Re:¿Cómo puedo hacer que mi personaje gire su sprite mientras está en el aire?
Publicado por: Clamud en Septiembre 13, 2017, 03:24:50 AM
Muestra el código o DnD que usas.