yep ,je crois que ton problème de collision viens du faite que tu utilise le système de collision en case par case sur un déplacement en temps réel.
Quand tu appuie sur la touche , tu devrai tester la position de destination avant de te déplacer .Il me semble que tu fais l'inverse et sa détecte la collision quand tu dépasse le mur et c'est trop tard.
j’espère que sa t'aura aider