я сейчас не особо трезв , но точно могу сказать что у тебя проблема здесь
function check(){
if( player.x + player.width >= block.x &&
player.x <= block.x + block.width &&
player.y + player.height >= block.y &&
player.y <= block.y + block.height){
return false; // постав здесь true и стены не будет )))
}
return true;
}
когда у блока происходит столкновения то он после этого всегда возвращает false , тебе нужно сначала в проверке додавать и отнимать и если возвращаеться true тогда перемещать блок.