Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Alex_Wallace en Marzo 28, 2015, 10:48:03 PM

Título: [Duda] Movimiento del jugador
Publicado por: Alex_Wallace en Marzo 28, 2015, 10:48:03 PM
Buenas, hace bastante que tenía el GM en la PC y la verdad no tenía tiempo para usarlo y ponerme a desarrollar juegos.
Ya que tengo esta semana de vacaciones aprovechare para aprender a usar GML, púes, estuve leyendo varios tutoriales por ahí en la web, y estuve aprendiendo las estructuras del GML y ya las tengo bastante claras, ya que tengo experiencias anteriores de programación.

Bien, estuve intentando hacer el movimiento del jugador, y he hecho esto:
Citarif keyboard_check(ord("a"))
{
    x-=1;
};
if keyboard_check(ord("d"))
{
    x+=1;
};
Lo he puesto en un evento Step.
No sé si es el lugar correcto, pero para eso estoy aquí, para que más o menos me puedan ayudar y eso.

Bueno, mi problema actual es ese, cuando estoy en el juego y presiono A o D no pasa nada, mi jugador sigue en el mismo lugar.
¿Alguna idea de como solucionarlo? Desde ya muchísimas gracias.
Saludos a todos.
Título: Re:[Duda] Movimiento del jugador
Publicado por: ivn_eze en Marzo 28, 2015, 11:08:22 PM
El error es simplemente que pusiste el - y el + antes del igual, cuando deben estar antes del valor (osea, en vez de x-=1 debe ir X=-1)



if keyboard_check(ord("a"))
{
    x=-1;
};
if keyboard_check(ord("d"))
{
    x=+1;
};
Título: Re:[Duda] Movimiento del jugador
Publicado por: Alex_Wallace en Marzo 28, 2015, 11:10:56 PM
Cita de: ivn_eze en Marzo 28, 2015, 11:08:22 PM
El error es simplemente que pusiste el - y el + antes del igual, cuando deben estar antes del valor (osea, en vez de x-=1 debe ir X=-1)



if keyboard_check(ord("a"))
{
    x=-1;
};
if keyboard_check(ord("d"))
{
    x=+1;
};

Antes que nada, gracias por tu respuesta.

El problema persiste, cuando ingreso al juego e intentó moverme, no puedo.
Título: Re:[Duda] Movimiento del jugador
Publicado por: smoke en Marzo 28, 2015, 11:14:17 PM
seguro que no tiene mas codigos que ese como gravedad y create.
Título: Re:[Duda] Movimiento del jugador
Publicado por: Alex_Wallace en Marzo 28, 2015, 11:17:55 PM
Sí, los tenía, los acabo de borrar y testear nuevamente, pero el problema persiste.
Título: Re:[Duda] Movimiento del jugador
Publicado por: penumbra en Marzo 28, 2015, 11:28:50 PM
Cita de: ivn_eze en Marzo 28, 2015, 11:08:22 PM
El error es simplemente que pusiste el - y el + antes del igual, cuando deben estar antes del valor (osea, en vez de x-=1 debe ir X=-1)
Esa parte está bien. Si se usa  X=-1, eso haría que el objeto se trasladara un pixel a la izquierda del borde izquierdo de la habitación y de ahí ya no se movería.


Cita de: Alex_Wallace en Marzo 28, 2015, 11:10:56 PM
El problema persiste, cuando ingreso al juego e intentó moverme, no puedo.
Aunque el código  X=-1 no es correcto, al presionar la tecla el jugador debió haberse cambiado de posición. Esto quiere decir que o no estás usando el evento STEP, o que hay algo que evita que se lea el teclado. Intenta esto, en STEP, pero antes borra cualquier otro código en ese evento.
[gml]
if keyboard_check(ord('A') )
{
    x -= 3;
}
[/gml]
Después de una llave "}" no debería ir un punto y coma
Título: Re:[Duda] Movimiento del jugador
Publicado por: ivn_eze en Marzo 28, 2015, 11:38:51 PM
Cita de: penumbra en Marzo 28, 2015, 11:28:50 PM
Cita de: ivn_eze en Marzo 28, 2015, 11:08:22 PM
El error es simplemente que pusiste el - y el + antes del igual, cuando deben estar antes del valor (osea, en vez de x-=1 debe ir X=-1)
Esa parte está bien. Si se usa  X=-1m eso haría que el objeto se trasladara un pixel a la izquierda del borde izquierdo de la habitación.


Cita de: Alex_Wallace en Marzo 28, 2015, 11:10:56 PM
El problema persiste, cuando ingreso al juego e intentó moverme, no puedo.
Aunque el código  X=-1 no es correcto, al presionar la tecla el jugador debió haberse cambiado de posición. Esto quiere decir que o no estás usando el evento STEP, o que hay algo que evita que se lea el teclado. Intenta esto, en STEP, pero antes borra cualquier otro código en ese evento.
[gml]
if keyboard_check(ord('A') )
{
    x -= 3;
}
[/gml]
Después de una llave "}" no debería ir un punto y coma

Otro error muy común al comenzar en GMS, es que SE TE OLVIDA COLOCAR EL OBJETO JUGADOR EN LA HABITACIÓN.  :D

Cierto, al pensar en los signos ignore el hecho de que el codigo erroneo no lo dejaba en el mismo lugar sino que lo dirigia a 1,1  :-[
Título: Re:[Duda] Movimiento del jugador
Publicado por: Alex_Wallace en Marzo 28, 2015, 11:40:35 PM
Acabo de borrar los codes que tenía en Step, hice denuevo lo del movimiento y sigue sin moverse :/ Estoy me está poniendo de los nervios.
Título: Re:[Duda] Movimiento del jugador
Publicado por: penumbra en Marzo 28, 2015, 11:42:45 PM
Cita de: Alex_Wallace en Marzo 28, 2015, 11:40:35 PM
Acabo de borrar los codes que tenía en Step, hice denuevo lo del movimiento y sigue sin moverse :/ Estoy me está poniendo de los nervios.
Podrías subir tu proyecto para revisarlo y evitar dar rodeos.  ;)
Título: Re:[Duda] Movimiento del jugador
Publicado por: Alex_Wallace en Marzo 28, 2015, 11:48:24 PM
Claro, aquí tienes.
Título: Re:[Duda] Movimiento del jugador
Publicado por: penumbra en Marzo 28, 2015, 11:53:37 PM
¬¬
pero no seguiste estas instrucciones al pie de la letra:
[gml]
if keyboard_check(ord('A') )
{
    x -= 3;
}
[/gml]
[/quote]

No hay que usar letras minúsculas en la función keyboard_check. cambiando a mayúsculas el personaje ya se mueve
Título: Re:[Duda] Movimiento del jugador
Publicado por: Alex_Wallace en Marzo 28, 2015, 11:59:41 PM
Muchas gracias :D :D :D