Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Hikaru Shido en Junio 13, 2013, 10:16:17 AM

Título: Sprites animados
Publicado por: Hikaru Shido en Junio 13, 2013, 10:16:17 AM
Hola.
Estoy intentando crear unos sprites animados.
La cosa es que voy a crear un objeto y pongo el sprite del protagonista y le añado el evento keyboard up despues le añado este code:
if sprite_index != sprite1
sprite_index = sprite1
y -= 2
Empiezo a probar el juego y me aparece el sprite quieto hasta ahora bien pero cuando muevo el esprite y dejo de darle a la tecla para arriba.
El sprite esta quieto pero se esta moviendo en el sitio donde lo he dejado y despues si le doy por ejemplo a la tecla de para abajo, en vez de ir para abajo, el sprite se va a la otra punta y sigue moviendose en su sitio.

Que puedo hacer para moverlo normal el sprite y que cuando pare o le de a otra tecla no se me vaya a otro sitio y que no se este moviendo solo en su sitio?
Título: Re:Sprites animados
Publicado por: penumbra en Junio 13, 2013, 11:44:27 AM
Te puedes ahorrar el IF del evento keyboard up. basta con escribir

sprite_index = sprite1

Al presinar la tecla hacia arriba, forzosamente se mostrará el sprite de salto, sin importar cuál era el sprite anterior a la pulsación

No me queda claro el problema, pero como que intuyo que lo que quieres es hacer que salte el personaje. Fíjate que le estás diciendo al GM que el personaje suba dos pixeles al presionar la tecla de salto. Si sueltas la tecla muy pronto, el personaje dará un saltito nada más, y creo que tampoco le has dicho al GM que el personaje debe volver a caer hasta el suelo, creo que a eso te refieres con "donde lo he dejado"

Hay varias maneras de codificar un salto. Si son tus primeras animaciones, le mejor es que uses algunas de las constantes que trae el GM por defecto. Por ejemplo, en keyboard up,  en lugar de y -= 2 pones vspeed = -2.

Luego la gravedad, en el evento STEP (si la pones en keyboard up, sólo funcionaría mientras presiones la tecla de salto, eso estaría raro)

gravity = 0.5

Hará que el personaje caiga después de haberse elevado un poco. Tienes que jugar con los valores de vspeed y gravity, para que resulte un salto convincente. Los valores que puse son nada más de ejemplo. OJO, aun faltaría más codigo en STEP, para que al colisionar con el suelo, el personaje se detenga (gravity = 0, vspeed = 0). De lo contrario, tras saltar el personaje atravesará el suelo y saldrá de la pantalla.
Título: Re:Sprites animados
Publicado por: Hikaru Shido en Junio 13, 2013, 02:09:39 PM
No quiero que salte solo quiero que vaya arriba,abajo, izquierda y derecha.
Pero no se porque cuando le doy por ejemplo arriba me al otro extremo y se mueve solo.

P.D: Subo el juego, no soy buena explicando y si enseño lo que me hace el juego igual entiendes lo que trato de decir