begin process at 2012 05 30 13:56:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Timer allegro !!Et pour quitter le prog apres ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Timer allegro !!Et pour quitter le prog apres ?

samedi 11 février 2006 à 20:56:53 | Timer allegro !!Et pour quitter le prog apres ?

Darksheep

Bonjour, je commence à programmer avec allegro ;) mais voila je butte : des que j'utilise un timer je n'arrive plus à quitter mon jeu !j'ai beau défoncer la touche ESC ça marche pas!!! une portion de code :
 #include <allegro.h>
volatile long speed_counter = 0;
void increment_speed_counter()
{
  speed_counter++;
}
END_OF_FUNCTION(increment_speed_counter);
void destroy_ressources();
BITMAP *buffer,*map,*colmap ;
BITMAP *pacman[8];
DATAFILE *data;

int main(int argc, char *argv[])
{
   

    allegro_init();
    install_keyboard();
    install_timer();
    LOCK_VARIABLE(speed_counter);
    LOCK_FUNCTION(increment_speed_counter);
    install_int_ex(increment_speed_counter, BPS_TO_TIMER(60));//Set our BPS
    set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,480,0,0);
    data = load_datafile("data.dat");
    set_palette((RGB*)data[eee].dat);
    buffer = create_bitmap(640,480);
    clear(buffer);
    map = load_bitmap("bmps/Image6.bmp",NULL);
    colmap = load_bitmap("bmps/collisions.bmp",NULL);
    pacman[0] = load_bitmap("bmps/pacright.bmp",NULL);
    pacman[1] = load_bitmap("bmps/pacright.bmp2",NULL);
    pacman[2] = load_bitmap("bmps/pacleft.bmp",NULL);
    pacman[3] = load_bitmap("bmps/pacleft.bmp2",NULL);
    pacman[4] = load_bitmap("bmps/pacup.bmp",NULL);
    pacman[5] = load_bitmap("bmps/pacup2.bmp",NULL);
    pacman[6] = load_bitmap("bmps/pacdown.bmp",NULL);
    pacman[7] = load_bitmap("bmps/pacdown2.bmp",NULL);
    while(!key[KEY_ESC])//If the user hits escape, quit the program
   {
    while(speed_counter>0)
     {
      clear(buffer);
      blit(colmap,buffer,0,0,0,0,640,480);
      blit(buffer,screen,0,0,0,0,640,480);
    
      
       speed_counter--;
     }
}
destroy_ressources();   
    return 0; // Exit with no errors
}

END_OF_MAIN()
     }               
dimanche 12 février 2006 à 14:36:52 | Re : Timer allegro !!Et pour quitter le prog apres ?

xboxut

normal que tu puisse pas quitter -> tu rentre dans ton while(speed_counter>0) { ton timer incrementre la variable speed_counter; manque de chance le blit prend pas mal de temp et l incrementation de ta varaiable speed_counter se fait plus rapidement que la decrémentation(speed_counter--;) ce qui a pour effet d'avoir toujours speedcounter >0 . tu peut donc jamais sortir de ton while. met un timer de 100-200 msec ca devrait marcher . enfin pour faire tourner ton prog a la meme vitesse , on utilise pas de while comme ca mais plutot des test if :) . il y a une } en trop apres END_OF_MAIN(); aussi aller @ ++
dimanche 12 février 2006 à 18:02:13 | Re : Timer allegro !!Et pour quitter le prog apres ?

dletozeun

de toute facon c pas bon du tout cette methode parce que ca va dependre de la config...
Il ne dois y avoir que la fct increment_speed_counter() qui dois toucher a la variable speed_counter
Et puis a quoi ca te sert de faire 50000 blit a la seconde alors que dans ton while le buffer ne va pas chnger d'un poil...?

En fait il faut que tu fasse une boucle ( donc un while) pour la partie calcul de ton programme.
Donc au debut de la boucle tu fixe une autre variable (int calcul par exemple)comme etant egale a celle du timer + n ( un nombre entier, par exemple 200) et dans ton while tu mets while(calcul>speed_count) { tu fais les calculs necessaires ...traimtement de l'image...de l'interface, claviert etc...}

voila et des que le timer a depassé calcul , tu dessine ce que tu as a dessiner.
Et ensuite tu repars a zero en remettant calcul egal a speed_counter+n...et ainsi de suite ( donc t'a un 2eme while qui engloble tout ca, du genre while ( !touche_esc_appuyé)

voila
dimanche 12 février 2006 à 18:03:56 | Re : Timer allegro !!Et pour quitter le prog apres ?

dletozeun

et j'ai oublié d'ajouter que tu ajuste toi meme ensuite la valeur de n pour que ca soit plus ou moins fluide...


Cette discussion est classée dans : load, bitmap, counter, speed, bmps


Répondre à ce message

Sujets en rapport avec ce message

allegro : charger 1 bitmap [ par Djedie ] je voudrais afficher 1 bitmap en 800 600 et en 24 ou 32 Bits.je fais :load_bitmap(...)ouload_bmp(...)j'arrive pas trop a voir la difference, sachant q Bitmap [ par zainal ] Salut a vousbon voila, je voudrai afficher une bitmap dans une zone de static et j ai creer ce bout de code qui ne marche pas vous vous en douter !voi recupérer le bitmap d'une fenetre sous borland c++ 5 [ par lele94 ] Je voudrais faire une copie d'ecran ou de fenetre sans passer par la touche impr ecran.je pensais y arriver avec des fonctions strectchDIbits, etc .. Problème avec un Bitmap [ par nauss ] Je veux afficher un bitmap en niveau de gris sous visual C++ en MFC.Pour l'instant j'arrive à l'afficher mais en niveau de rouge!!Y doit y avoir une h Petit Bugg [ par ToToL ] Tout d'abord voici mon code : #include int main() { install_allegro(SYSTEM_AUTODETECT, &errno, atexit);set_color_depth(16);set_gfx_mode(GFX_AUTODETECT dialogbox et bitmap [ par supergrey ] Bonjour, je fais actuellement un client IRC et je voudrais qu'un image s'affiche dans ma boite de dialogue principal lorsque la connexion est etablie. Bitmap [ par c2millet ] HelloVoila mon PB, je veux faire de la mise en page d'impression. Je veux insérer un logo BITMAP sur ma feuille comment faire?J'ai commencé comme ça m imprimer une bitmap [ par c2millet ] qq'un peut m'expliqué comment imprimer une bitmap qui se trouve ds un dossierCmill pb noir et blanc [ par c2millet ] Voila mon probleme j'insere une bitmap sur ma page d'impression mais le pb c que cette derniere et imprimer en noir et blanc et deplus elle est à l'en N'affiche rien [ par c2millet ] C encore moi avec mon pb de BITMAP. Mon code compile mais n'affiche pas ma bitmap si qqun peut m'aiderMerci.------------------------------------------


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales