Antes de nada, un gran script, muy bien elaborado. Me gusta mucho el resultado.
Bueno, el script está bien. El problema está en el mapa. Fíjate que a la hora de pulsar las teclas, debajo del protagonista no hay nada, pero arriba hay algo. Un mini o algún movimiento no permitido o algo así que le bloquee el paso. Al bloquearle el paso hacia arriba, no te va a leer la pulsación de dicha tecla. Igual que si lo pones por abajo o por cualquier lado. Si hay un obstáculo en alguna dirección, no te leerá esa dirección. Así que tienes que hacer algo para dejar ambas direcciones libres.
Vamos, en teoría tiene que ser el problema. Si no es ese, pues scan :P