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.

#9 Octubre 28, 2010, 08:12:56 AM Ultima modificación: Octubre 28, 2010, 08:47:15 AM por hernis
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