Bueno, como está escrito en el título, tengo un pequeño problema el cual me gustaría que me ayudasen. Cada vez que ejecuto el juego el personaje solo se va a un lado con la tecla que presiono y al llegar a una pared simplemente ya no puede moverse, presiono todas las teclas y no pasa nada. Me gustaría que me ayudaran, quizás alguno de ustedes ya haya tenido el mismo problema, les paso el código para que vean si hay un error o algo:
if keyboard_check(vk_right) && place_free(x+1,y)
{
direction = 0;
speed = v;
}
if keyboard_check(vk_up) && place_free(x,y-1)
{
direction = 90;
speed = v;
}
if keyboard_check(vk_left) && place_free(x-1,y)
{
direction = 180;
speed = v;
}
if keyboard_check(vk_down) && place_free(x,y+1)
{
direction = 270;
speed = v;
}
//Rapidez de los frames
if speed > 0
{
image_speed = 1;
}
else {
image_speed = 0;
image_index = 0;
}
switch(direction)
{
case 0:
sprite_index = player_right;
break;
case 90:
sprite_index = player_up;
break;
case 270:
sprite_index = player_down;
break;
case 180:
sprite_index = player_left;
break;
}
if keyboard_check(vk_right) && place_free(x+1,y)
{
direction = 0;
speed = v;
}
if keyboard_check(vk_up) && place_free(x,y-1)
{
direction = 90;
speed = v;
}
if keyboard_check(vk_left) && place_free(x-1,y)
{
direction = 180;
speed = v;
}
if keyboard_check(vk_down) && place_free(x,y+1)
{
direction = 270;
speed = v;
}
//Rapidez de los frames
if speed > 0
{
image_speed = 1;
}
else {
image_speed = 0;
image_index = 0;
}
switch(direction)
{
case 0:
sprite_index = player_right;
break;
case 90:
sprite_index = player_up;
break;
case 270:
sprite_index = player_down;
break;
case 180:
sprite_index = player_left;
break;
}