Use a single spritesheet
Handle mouseleave on canvas
Some refactoring