❤ 0 Ce script n'est PAS pour les boucles événementielles, il sert à ceux qui codent en Ruby pour leurs jeux VX/VXAce. Son utilité est de stopper les boucles qui sont anormalement longues, probablement infinies, afin de les localiser. Voici le script à insérer (vous pouvez le nommer Kernel_Loop et l'insérer au dessus de Main):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| if $TEST
def loop
t1, t2 = Time.now, 0
frame = Graphics.frame_count
while t2 < 10
yield
if frame != Graphics.frame_count
t1, t2 = Time.now, 0
frame = Graphics.frame_count
else
t2 = Time.now - t1
end
end
raise "Boucle anormalement longue: #{caller}" unless t2 < 10
end
end |
À chaque appel de la fonction loop, si le bloc exécuté dure 10 secondes ou plus sans rafraîchissement des graphiques, un message d'erreur avec la source de la boucle sera affiché. Sentez-vous à l'aise de remplacer 10 par le nombre de secondes désiré. Note: par défaut, le script ne s'active qu'en mode Test afin de ne pas nuire aux performances.
Bon débug !
|