Ya casi he resuelto mi gran problema con esto del slow. Explico:
Para saltar tengo una variable que se encarga de averiguar si mi personaje esta tocando suelo o no(ground), en el caso de que no este tocando suelo no va a poder volver a saltar obviamente.
El problema cuando hago el salto y efectuó la ralentización es que en medio del salto cuando se acaba el efecto slow(le habré puesto 4 segundos de duración mediante un alarm al slow y al final de este se destruye la instancia) pues la gravedad vuelve a ser la misma que había antes, es decir que si pongo menos gravedad para conseguir que la longitud del salto sea la misma que antes estoy también impidiendo cuando la gravedad vuelve a ser la misma que el salto sea igual de alto.
A fin de cuentas y para resolver el problema he pensado en realizar 2 variables globales, una que se encarga de guardar cuando esta ground y cuando no lo esta(el personaje ya tiene dos de estas variables locales, pero para no mover todo el código he decidido crear dos globales), de esta forma lo que quiero conseguir es que cuando en el Alarm pasen los 4 segundos no le afecte al slowmotion mientras No esta tocando el suelo.
Alarm[0] - obj_slowmotion
el personaje principal guarda ambas variables globales, ya que es el encargado de decirle a Slowmotion si esta pisando el suelo o no mi personaje. El problema es que ahora el slowmotion si no toco el suelo y han pasado esos 4 segundos es Infinito.
Lo que querría es que cuando pasen esos 4 segundos el personaje no cambie el slowmotion hasta que toque el suelo en el caso de que estuviese saltando(es decir "!ground"), esa sería una gran idea para quitarme todo este lió entre variables.
Para saltar tengo una variable que se encarga de averiguar si mi personaje esta tocando suelo o no(ground), en el caso de que no este tocando suelo no va a poder volver a saltar obviamente.
El problema cuando hago el salto y efectuó la ralentización es que en medio del salto cuando se acaba el efecto slow(le habré puesto 4 segundos de duración mediante un alarm al slow y al final de este se destruye la instancia) pues la gravedad vuelve a ser la misma que había antes, es decir que si pongo menos gravedad para conseguir que la longitud del salto sea la misma que antes estoy también impidiendo cuando la gravedad vuelve a ser la misma que el salto sea igual de alto.
A fin de cuentas y para resolver el problema he pensado en realizar 2 variables globales, una que se encarga de guardar cuando esta ground y cuando no lo esta(el personaje ya tiene dos de estas variables locales, pero para no mover todo el código he decidido crear dos globales), de esta forma lo que quiero conseguir es que cuando en el Alarm pasen los 4 segundos no le afecte al slowmotion mientras No esta tocando el suelo.
Alarm[0] - obj_slowmotion
Código [Seleccionar]
if (global.slow = true and global.noground = true){
global.slow = true;
} else if (global.slow = true and global.yesground = true){
instance_destroy();
}
el personaje principal guarda ambas variables globales, ya que es el encargado de decirle a Slowmotion si esta pisando el suelo o no mi personaje. El problema es que ahora el slowmotion si no toco el suelo y han pasado esos 4 segundos es Infinito.
Lo que querría es que cuando pasen esos 4 segundos el personaje no cambie el slowmotion hasta que toque el suelo en el caso de que estuviese saltando(es decir "!ground"), esa sería una gran idea para quitarme todo este lió entre variables.