Je viens de regarder ton code et nous avons fait presque la même chose pour la gestion du déplacement.
Par contre, y'a un truc pas cool dans ta fonction heros.draw() : tu charges tes images à chaque passage. Même si dans ton cas, cela n'a pas vraiment d'incidence, je te recommande vivement de les mettre dans heros.load().
Rappel : heros.draw() est appelée 60 fois par seconde environ ^^
Sinon, il n'y a aucune erreur.
Vu comment tu es avancé, tu devrais avoir fini d'ici la fin de la semaine non ? (^_^)