Aie, aie ! Il me semblait t'avoir déjà donné les grandes lignes de la structure d'un jeu 2D en Java sur un autre topic. Pas besoin de Timer. Et les repaint() et déplacement dans la méthode keyPressed c'est très crade. Ajouter à cela des noms de variables et de méthodes imbitables, des valeursn numériques à tout bout de champ et on a un projet qui vaut la moyenne parce qu'on est gentil, les élèves ils débutent.
Le problème c'est qu'il y en a sont pas loin de coder aussi mal après des années d'expérience (bon ça s'arrange quand même avec le temps). 