J'ai un problème avec un jeu (une sorte de pong) que j'ai développé sous dev-cpp avec Allegro.
Apparament cela vient du timer que jutilise pour limiter les FPS (si je met un simple rest(10); à la place ca marche bien).
En fait le jeu fonction normalement ~4 fois sur 5 mais quelque fois au démarage ca m'affiche la balle et ca fige l'écran...
détails :
#include <allegro.h>
#include <time.h>
#include <iostream.h>
#include <stdlib.h>
//timer :
volatile int timer=0;
void inctimer()
{
timer++;
}
END_OF_FUNCTION(inctimer);
int main(int nArgs,char* Args[])
{
//toutes les initialisations...
install_timer();
//timer :
LOCK_VARIABLE(timer);
LOCK_FUNCTION(inctimer);
install_int_ex(inctimer,MSEC_TO_TIMER(2));
while(!key[KEY_ESC]) // Tant que l'on a pas pressé la touche ESC (echap)
{
timer=0;
textprintf_centre(image,font,10,6,makecol(0,255,0), "%d",timer);
install_int_ex(inctimer,MSEC_TO_TIMER(1));
//le moteur et la fonction d'affichage du jeu
tim:
if(timer<10) goto tim;
} //fin du while
A chaque fois que l'écran fige, je peux quitter qu'en killant le processus et le timer est toujours à 151 (je le vois grace à "textprintf_centre(image,font,10,6,makecol(0,255,0), "%d",timer);")
C'est assez ennuyeux...
tibe