Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Dándole vida visual a nuestro personaje (parte 2)

7/14
Recursos

Aportes 11

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para que la funcion keyboard_check utilize las teclas WASD es necesario cambiar el codigo un poco.
La funcion se escribiria de la siguiente manera:
if keyboard_check (ord (“D”))
Es necesario que este en mayuscula.
Tambien funciona de la siguiente manera:
else if keyboard_check (ord (“D”))
Aqui una muestra de mi codigo:

wow que padre que el codigo es muy parecido a javascript… no se ve tan complicado!!

Debe haber alguna manera de que al voltear de right-left no “pierda” un pequeño espacio de por medio. El xscale -1 hace que el movimiento a la izquierda sea muy abrupto

Btw si quieren que el personaje retome su posición Idle al dejar de moverse sólo deben agregar un par de líneas al final del código. El sprite_index debe apuntar al spr_idle

else {
sprite_index = spr_bat_man_idle;
}
if(keyboard_check(vk_right)){
x= x+spd;
sprite_index=spr_jugador_run;
image_xscale=1;
} else if (keyboard_check(vk_left)){
x=x-spd;
sprite_index=spr_jugador_run;
image_xscale=-1;
} else if (keyboard_check(vk_down)){
y=y+spd;
sprite_index=spr_jugador_run;
image_xscale=-1;

}else if (keyboard_check(vk_up)){
y=y-spd;
sprite_index=spr_jugador_run;
image_xscale=-1;
}else {
sprite_index = spr_jugador_idle;
}

al final de los if le agrege

 else {
	sprite_index = spr_bat_man_idle;
}

para que el personaje se quede sin la animacion de correr!

Los ejes de gamemaker, asi como los del canvas de javascript por ejemplo, están invertidos.

Tomen esto en cuenta al programar

Buenas, vengo a poner mi aporte para tener una mejor y mas completa animacion de la movilidad del personaje:

Muy buen video y explicativo

Una muestra de mi codigo, tambien agregue algo para que no se mantuviera corriendo cuando dejara de presionar alguna de las teclas de movimiento, y tambien agregue codigo para que puedan maniobrar su personaje con WASD y con las flechas de movimiento, tambien añadi una forma de hacer que el personaje corra, cuando presionemos shift, corra con una velocidad de 3 y si no lo presionemos camine o este estatico no es la mejor solución pero funciona

 /// @description Este evento corre en cada frame.Si esta configurado a 60 fps , correra 60 veces en un segundo
if(keyboard_check(vk_shift)){
	spd = 3;
	sprite_index = spr_firstplayer_running;
}else{
	spd = 1;
}

if(keyboard_check(vk_right) || keyboard_check(ord("D"))){
	 x = x+spd;
	 sprite_index = spr_walk;
	 image_xscale = 1;
	
}else if(keyboard_check(vk_left)|| keyboard_check(ord("A"))){
	 x = x-spd;
	 sprite_index = spr_walk;
	 image_xscale = -1; 
}else if(keyboard_check(vk_up) || keyboard_check(ord("W"))){
	 y = y-spd;
	 sprite_index = spr_walk;
	 image_xscale = -1;
}else if(keyboard_check(vk_down) || keyboard_check(ord("S"))){
	 y = y+spd;
	 sprite_index = spr_walk;
	 image_xscale = -1;	 
}else{
	sprite_index = spr_firstplayer;
	image_xscale = 1;
}

Esta vez pude resolver mi duda. El código esta bien. Solo hay que tener cuidado con los signos, con los ejes y los nombres de los sprites. Por eso no me estaba quedando.