Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: TheSquirrel en Octubre 20, 2010, 12:09:52 AM

Título: problemas con una variable para agacharse
Publicado por: TheSquirrel en Octubre 20, 2010, 12:09:52 AM
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?
Título: Re: problemas con una variable para agacharse
Publicado por: Hackware en Octubre 20, 2010, 12:59:26 AM
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.
Título: Re: problemas con una variable para agacharse
Publicado por: TheSquirrel en Octubre 20, 2010, 01:34:27 AM
a que te refieres con invertirlas , que de 0 pase a 2 y de 2 a 1?
Título: Re: problemas con una variable para agacharse
Publicado por: Hackware en Octubre 20, 2010, 04:10:30 AM
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]
Título: Re: problemas con una variable para agacharse
Publicado por: TheSquirrel en Octubre 20, 2010, 09:59:14 PM
tampoco me sirve lo que me dejaste de codigo :/
Título: Re: problemas con una variable para agacharse
Publicado por: Hackware en Octubre 20, 2010, 10:58:05 PM
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.
Título: Re: problemas con una variable para agacharse
Publicado por: 3dgeminis en Octubre 22, 2010, 08:02:17 PM
Te dejo un ejemplo, espero que sea lo que queres
Título: Re: problemas con una variable para agacharse
Publicado por: TheSquirrel en Octubre 22, 2010, 08:33:06 PM
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
Título: Re: problemas con una variable para agacharse
Publicado por: 3dgeminis en Octubre 25, 2010, 07:24:58 PM
El ejemplo es sencillo, deverias poder hacer los cambios que queres, revisalo bien primero.
Título: Re: problemas con una variable para agacharse
Publicado por: hernis en Octubre 28, 2010, 08:12:56 AM
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