1652Fermer1654
BrunniLe 08/08/2003 à 19:50
lol, donc mon Arkanoid est en 15 bits.
Houlà! Ce ne serait pas plutôt 16 bits?
mais j'ai regardé dans le code de Mario3 avant, et j'avoue que le code est assez indigeste donc c'est pas facile pour retrouver la routine.
Malheureusement oui. Et ce n'est pas le pire de mes codes. Cependant, je ne pensais pas distribuer la source de Mario, donc je n'ai pas fait d'effort. Aujourd'hui, je pars du principe qu'il y aura toujours quelqu'un pour relire mes progs, (Open Source Pawaaa!) ne fût-ce que moi plus tard par nostalgie...
Dans la boucle principal tu incrémente une variable? Avec l'interruption tu regarde la valeur de cette variable, tu la divise par une valeur et tu fait un petit calcul pour le pourcentage?
En gros, oui. Tu mets une valeur sur le timer utilisateur (6) comme 1. Ensuite, tu fais ton code. A la fin, tu vas attendre que le timer ait expiré, ainsi tu éviteras que l'animation soit plus rapide ou plus lente à certains stades du jeu. J'ai mesuré que tu pouvais faire environ 4'500 fois OSTimerExpired sur HW2 lorsque ta boucle est vide, mais je ne suis pas sûr, d'autant plus que que la vitesse du timer programmable était peut-être changée à ce moment-là. Donc se basant sur ça:
tim=0;
while (!OSTimerExpired (USER_TIMER)) tim++;
on aura tim qui contiendra le temps passé à ne rien faire (4500 == 100cheeky. Ainsi, tu peux facilement savoir l'utilisation du CPU selon cette formule: (100-tim/45). Ca n'est pas plus compliqué. Pour HW1, je n'ai pas de valeur, cependant je crois que c'est 1700 sur VTI...