Ca permet de gérer la cadence d'affichage mais seul un sleep permet de faire "respirer la machine".
Ici on ne recalcule pas systématiquement l'image mais on ne s'arrête pas pour autant puisqu'une repeinture est immédiatement ordonnée.
Les deux provoquent un ralentissement du mouvement mais la comparaison s'arrête là.
Ca dépend. Si l'app est au premier plan, on peut l'admettre aisément. Si elle est en arrière plan, définitivement pas.
Tu as manifestement un machine bi-coeurs, l'app est mono-thread (donc utilise un seul cœur) et cette tâche tourne à fond (en boucle sans sleep). 50% des ressources CPU sont utilisées, elle ne peut pas en consommer plus !
Le principe est très bien et assure un mouvement plus uniforme. Il manque peut-être juste un test if GetForgroundWindow <> Handle then Sleep(1); pour que si tout à coup tu devais utiliser une autre app (lire tes mails par exemple) sans pour autant quitter le jeu, cette autre app ne subisse pas de ralentissement.
(L'app au premier plan a une priorité légèrement supérieure aux autres, elle fonctionnera mais à la vitesse petit "V")
Le seul cas serait des tâches de priorité supérieure parce qu'ici, TetrisRun accapare un cœur pour son seul usage. Ce sont les autres apps qui risquent d'être ralenties mais pas lui
Partager