Hola, cre? en el evento create la siguiente variable : agachado = 0
luego puse esto
if keyboard_check(vk_down) and agachado = 0 {sprite_index = spr_samus_UPr
agachado = 1}
if keyboard_check(vk_down) and agachado = 1{sprite_index = spr_samus_mp
agachado = 2}
entonces cuando apreto abajo se pasas muy rapido a samus_mp , yo quiero que pase por samus_Upr , y cuando haga otra vez abajo se ponfa en samus_mp
como lo hago?
Eso es porque le est?s diciendo al juego que si es 0 pase a 1 e inmediatamente despu?s le dices que si es 1 pase a 2; en otras palabras, le est?s diciendo al juego que si es 0 pase a 2 haciendo una escala innecesaria en el 1. Lo m?s sencillo es que inviertas el orden de las condiciones.
a que te refieres con invertirlas , que de 0 pase a 2 y de 2 a 1?
Esto es lo que hace tu c?digo:
[gml]//Veamos si agachado es cero...
if keyboard_check(vk_down) and agachado = 0 {sprite_index = spr_samus_UPr
agachado = 1}
//OK, es cero, entonces hagamos que valga uno.
//...
//Ahora veamos si agachado es uno... aunque no tiene sentido, tiene que serlo, justo antes lo cambi? a uno ?Bueno, que m?s da! yo no me escribo s?lo XD
if keyboard_check(vk_down) and agachado = 1{sprite_index = spr_samus_mp
agachado = 2}
//Pues s?, entonces hagamos lo que me piden y que agachado sea dos, ni modo.[/gml]
Si ordenas las condiciones de la ?ltima a la primera evitar?s esta trivial conversaci?n. XD
[gml]if keyboard_check(vk_down) and agachado = 1{sprite_index = spr_samus_mp
agachado = 2} //agachado ser? 2 y la pr?xima condici?n resultar? falsa.
if keyboard_check(vk_down) and agachado = 0 {sprite_index = spr_samus_UPr
agachado = 1}[/gml]
tampoco me sirve lo que me dejaste de codigo :/
Creo saber porque no te funciona. Supongo que colocaste el c?digo en el evento Step, as? que adem?s de reordenar las condiciones deber?s cambiar la funci?n keyboard_check() por keyboard_check_pressed(), para que s?lo chequee el bot?n una vez aunque lo dejes pulsado.
Te dejo un ejemplo, espero que sea lo que queres
mas o menos eso , pero envez de que al apretar arriba sea altiro el samus s1 , sea samus s2 y cuando aprete denuevo arriba sea s1
El ejemplo es sencillo, deverias poder hacer los cambios que queres, revisalo bien primero.
no se si estoy mal pero no seria asi
if keyboard_check(vk_down) and agachado = 0 {sprite_index = spr_samus_UPr
agachado = 1}
if keyboard_check(vk_down) and agachado = 1{sprite_index = spr_samus_mp
agachado = 0}
y otra cosa deberia serkeyboard_check_pressed(key) como dice Hackware