Muito bacana teu post Rodrigo, é muito massa criar joguinhos com JavaScript!
Umas dicas:
Usar reset ao invés de fillRect para limpar o canvas.
canvas.reset()
Isso é opcional, mas ao invés de definir uma variável com nome "canvas" defina com "context", geralmente se define com esse nome.