Hola, deberias poner el codigo completo, porque con lo que has puesto, no podemos saber que es lo que hay dentro del array map.
Por otro lado, los objetos no se pueden comparar con ==, en este caso, tu estas haciendo if(a == "@"), para comparar deberías usar: if(a.equals("@")).... Quizá esa sea la razon de que siempre entra en el else.
Prueba a ver, y si no es, intenta poner donde rellenas el array map, y el codigo completo de esa clase, con el array map. Bno un saludo, ya nos cuentas.
Nota: no te lo tomes a mal, jeje pero la indentación, es de pena, intenta estructurar mejor el codigo para que se lea mejor.
Es que es increible, he estado una hora intentando que el siguiente código funcione pero no lo hace... De verdad debe ser un error muy estúpido, pero no me doy cuenta.-
http://puu.sh/lk1tY/57d8907b81.png
Los atributos pY y pX siguen siendo cero, el operador (a == "@") nunca es verdadero. ¿Por qué????