Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Ziliock en Noviembre 08, 2013, 11:44:27 PM

Título: ¿Me ayudan con funcion de salto en juego de desplazamiento horizontal?
Publicado por: Ziliock en Noviembre 08, 2013, 11:44:27 PM
Cuando mi personaje corre,y no hay nada debajo de el,deve caer;logre que lo hiciera con el Event Step,y en actions puse Check Collision Free,osea,si no hay nada debajo,entre las flechas que sirven de parentesis en esas acciones puse Set Gravity,osea que:En cada Step,si no hay nada debajo del personaje,este cae.Pero el problema es que no logro hacer que cambie bien el Sprite,cae con el Sprite de correr,y si pusiera que cambie el Sprite en Event Step,cambiaria constantemente,de forma que no avanzaria la animacion.¿Como podria solucionarlo?
Solo se usar los iconos que se arrastran para programar,no se usar los Codes y Scripts.Pero si son muy necesarios podria intentar aprender.Gracias por leer
Título: Re:¿Me ayudan con funcion de salto en juego de desplazamiento horizontal?
Publicado por: Dr.Recar en Noviembre 09, 2013, 08:58:07 PM
En step añade el evento  test variable, pones en variable: "vspeed", en value le dejas en 0, y en la casilla de abajo le pones smaller than, y pones "start of a block" de la pestaña control: le pones la acción change sprite y dentro le pones el sprite de saltar a la velocidad que quieras, bueno le das a "end of a block"  y ahora vas a la colisión con la pared y pones test variable".vspeed" value "0" "smaller than" abres un nuevo bloque y pones change sprite into "corriendo" o el sprite que tengas, si que hay un bug, se soluciona con un código, si quieres ayuda manda msg y te lo explico.   :D
Título: Re:¿Me ayudan con funcion de salto en juego de desplazamiento horizontal?
Publicado por: elviskelley en Noviembre 10, 2013, 11:57:01 PM
te recomiendo aprender GML. (los scripts)
te colocare en gml.
event end step.
if ((vspeed < 16) and (place_free(x,y+1)) then
{gravity=.5;}else{gravity=0;}
//con esto se activa la gravedad cuando no hay solid debajo.

los cambios de sprite puedes hacerlos en el event End Step, pero para que no se cambien repetidas veces
establece condiciones.
if (vspeed >0 and sprite_index != sprite_caer)
{ sprite_index= sprite_caer;}

if (keyboard_check_press(vk_left) and vspeed=0 and sprite_index!=sprite_corre_izquierda)
{sprite_index=sprite_corre_izquierda;}

etc...
bueno por ahi vas captando la idea.