Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: haroichi en Diciembre 08, 2009, 02:06:45 AM

Título: problemita
Publicado por: haroichi en Diciembre 08, 2009, 02:06:45 AM
bueno, tengo un problema peque?o que no me molesta mucho pero me gustaria resolverlo pero no me importa si no.
tengo un personaje que no camina si no que da ese efecto saltando peque?os espacios con la funcion jump to position.
al apretar la correspondiente tecla de direccion el personaje empieza a moverse y cambia el sprite, luego al soltar la correspondiente tecla este vuelve al sprite donde no se mueve, el sprite depende de cual sea la tecla que se presione.
el problema se produce cuando hago lo siguiente:
- apreto el boton de direccion digamos derecha
- cambia al sprite que camina a la derecha y empieza a moverse
- luego aprieto el boton de izquierda
- el personaje cambia al sprite de caminar a la izquierda y se queda inmovil
- se suelta el boton de izquierda y el sprite de caminar hacia la izquierda se mantiene, pero como esta presionado el boton de derecha el personaje continua hacia la derecha con el sprite de izquierda.

es un michael jackson instantaneo, alguna idea?
Título: Re: problemita
Publicado por: NdS10 en Diciembre 08, 2009, 02:39:07 AM
Pues a mi tambien me paso eso, tu problema es que depronto tu juego cuando inicia tu personaje comenza con el sprite de la derecha (y depronto por eso no pusiste que cuando oprimas el boton de la derecha cambie al sprite de la derecha) es mejor que con todos las flechas cambe el sprite a su misma direccion.
Bueno eso es en caso que sea con eventos, si es con un script no se...

Salu2
Título: Re: problemita
Publicado por: bonachiu en Diciembre 08, 2009, 12:43:13 PM
Bien.. Primero de todo si llevas mas de dos meses con game maker, deber?as quitarte la costumbre de usar los botoncitos de drag & drop, porque programar programar realmente con el c?digo. Osea que si no me equivoco tu problema es que si aprietas las dos teclas se queda con el evento del de la izquierda y claro, no se cu?nto le habras puesto de avance en el jump to position, pongamosle que 5 pixeles, al estar los dos eventos a la vez +5 -5 = 0 osea que no avanza y como el ?ltimo evento en ejecutarse es el de la izquierda nos quedamos con el sprite del t?o andando a la izquierda. Realmente no s? c?mo lo habr?s montado, pues si sueltas izquierda teniendo derecha apretada el sprite deber?a volver a la derecha y andar a la derecha ya lo hace

Debe haber algo m?s en el c?digo entonces, no s?lo cambiar de sprite y saltar a cierta posicion cuando pulsas la tecla, me equivoco? 
Título: Re: problemita
Publicado por: haroichi en Diciembre 08, 2009, 03:17:30 PM
bueno, no importa , era solo para saber si alguien tenia alguna solucion simple para este problema, ahi tendre que solucionarlo yo solo, es solo que me daba flojera tener que coonfigurarlo para que no pase eso, en fin la idea general de esta pregunta si alguien tenia una solucion rapida, pero gracias de todos modos.

bonachiu gracias, pero no gracias por el consejo uso ambas formas de programar y estoy bien a si que gracias por intentarlo.
Título: Re: problemita
Publicado por: higo en Diciembre 09, 2009, 01:55:50 AM
esque tienes que poner en el evento Step:
if direction == 0
//usa el sprite de la derecha
if direction == 180
//usa el sprite de la izquierda
Título: Re: problemita
Publicado por: Soujiro en Diciembre 09, 2009, 04:36:32 AM
El aclara que usa la funcion "jump to position", osea que la direccion no tiene porque cambiar al apretar las teclas.  Deberias probar las respuestas que das.
Título: Re: problemita
Publicado por: magnetox en Diciembre 10, 2009, 05:28:51 PM
sucede asi:
al presionar la tecla se cambia el sprite_index
al estar presionada la tecla se ejecuta el jump to position todos los steps
esto explica porque al soltar izquierda se queda con el sprite: porque esto se ha configurado al PRESIONAR la tecla y no se chekea cuando esta presionada, en cambio el movimiento si se chekea al estar presionada la tecla por lo que va a seguir caminando hacia la derecha, aunque con el sprite de la izquierda
Estoy en lo correcto?