Pour la vie perdue, je pense pas que ça soit la bonne solution d'attendre 10 secondes.
Mais plutôt de créer une variable qui sert "d'indicateur". (boolean)
Genre s'il y a une collision tu mets la variable à 'true'. Quand il y en a plus tu le mets à 'false'.
Quand la variable est égale à 'true' tu fais perdre une vie puis tu le mets à 'false' direct.
Enfin c'est qu'une idée mais le but ça serait de faire en sorte que quand il y a une collision alors il perd une vie puis il peut plus en perdre avant la prochaine collision, car dans ton cas SI il y a une collision alors on fait perdre une vie à chaque frame du coup ça s'enchaîne vite et toute la vie se perd.
Après je ne suis qu'un débutant. 