Il faut bien faire attention à ce que les actions qui ne doivent pas se répéter ne se répètent pas :
1
void clearKeyStatesNoRepeat();
Pour cela on prendra bien garde à les remettre à 0 à chaque boucle.