
mat74
|
voila le main ( pr le timer j'utilise la fonction d'allegro )
#include "init.h"
int main () {
//initialiser allegro allegro_init() ; install_keyboard() ; install_timer(); install_mouse(); install_sound(DIGI_AUTODETECT,MIDI_AUTODETECT,NULL); set_color_depth(16) ; set_gfx_mode(GFX_AUTODETECT,640,480,0,0);
//creer le buffer buffer=create_bitmap(640,480) ;
//charger les bitmap charger_bitmap ();
//initialiser les positions des etoiles for (int a=0; a<20; a++) etoile_x[a]=1+rand()% 640;
//le timer LOCK_VARIABLE(counter); LOCK_FUNCTION(timer); install_int_ex(timer,BPS_TO_TIMER(100));
//definir les variables pour le ou les personnages j_1.definir_variable(320,440,1.6,100,3,100,0); //j_2.definir_variable(200,440,1.6,10,3,100,0);
//charger le datafile datafile=load_datafile("shoot.dat");
/**************************************** menu *************************************************/
menu:;
while (1) {
blit(buffer,screen,0,0,0,0,buffer->w,buffer->h); clear_bitmap(buffer);
textprintf(buffer,font,200,200,makecol(255,0,0),"menu"); textprintf(buffer,font,10,10,makecol(255,0,0),"i_arrive_ennemis = %d",i_arrive_ennemis);
if (key[KEY_J]) goto jeu;
}
/**************************************** pause ************************************************/
pause:;
while (1) {
blit(buffer,screen,0,0,0,0,buffer->w,buffer->h); clear_bitmap(buffer);
textprintf(buffer,font,200,200,makecol(255,0,0),"pause");
if (key[KEY_J]) goto jeu; if (key[KEY_M]) goto menu; textprintf(buffer,font,10,10,makecol(255,0,0),"i_arrive_ennemis = %d",i_arrive_ennemis);
}
/***************************************** jeu *************************************************/
jeu:;
while(!key[KEY_ESC] && !fin) {
while (counter>0) {
if (key[KEY_P]) goto pause; if (key[KEY_M]) goto menu; textprintf(buffer,font,100,100,makecol(255,0,0),"i_arrive_ennemis = %d",i_arrive_ennemis);
//determiner qd les ennemis deviendrons actifs arrive_ennemis (); //joueur 1 j_1.deplacer_personnage(KEY_LEFT,KEY_RIGHT,KEY_UP,KEY_DOWN); j_1.limiter_personnage((BITMAP*)datafile[avionj1milieu].dat); j_1.ajouter_missiles ((BITMAP*)datafile[avionj1milieu].dat,missile_joueur,KEY_SPACE); j_1.fonction_missiles (buffer,missile_joueur,missile_croissant_joueur,avion); j_1.collision_perso_rochers (rocher[0],missile_joueur,missile_croissant_joueur,(BITMAP*)datafile[avionj1milieu].dat); j_1.vie_armur (); j_1.collision_perso_ennemis (missile_ennemis,(BITMAP*)datafile[avionj1milieu].dat,missile_joueur,missile_croissant_joueur,avion); j_1.collision_perso_bonus ((BITMAP*)datafile[bonus1].dat,(BITMAP*)datafile[avionj1milieu].dat); j_1.utiliser_bonus (KEY_LCONTROL,KEY_RCONTROL); j_1.collision_perso_boss ((BITMAP*)datafile[avionj1milieu].dat,missile_boss1,missile_boss1_b,missile_boss1_c);
/* //joueur 2 j_2.deplacer_personnage(KEY_J,KEY_L,KEY_I,KEY_K); j_2.limiter_personnage((BITMAP*)datafile[avionj2milieu].dat); j_2.ajouter_missiles ((BITMAP*)datafile[avionj2milieu].dat,missile,KEY_S); j_2.augmenter_x (); j_2.augmenter_y (); j_2.effacer_missiles (); j_2.collision_perso_enn ((BITMAP*)datafile[avionj2milieu].dat,avion); j_2.vie_armur (); j_2.collision_missiles_perso_enn (missile,avion); j_2.collision_missiles_enn_perso (missile_ennemis,(BITMAP*)datafile[avionj2milieu].dat); */
//faire les calcules en rapport avec les ennemis for (it_liste_ennemis = liste_ennemis.begin (); it_liste_ennemis != liste_ennemis.end (); it_liste_ennemis++) { if ((*it_liste_ennemis).activer==true) { (*it_liste_ennemis).deplacer_ennemis (); (*it_liste_ennemis).desactiver_ennemis (); }
//pr supp les éléments else { it_liste_ennemis = liste_ennemis.erase (it_liste_ennemis); it_liste_ennemis--; }
} counter--;
draw=true;//confirme le dessin
}
if (draw) {
blit(buffer,screen,0,0,0,0,buffer->w,buffer->h); clear_bitmap(buffer);
//afficher le nb de frames par secondes textprintf(buffer,font,10,460,makecol(255,0,0),"fps = %d",fps ());
//les etoiles afficher_fond (); //afficher les ennemis
ajouter_afficher_boss ();
/* //le boss b.afficher_boss (); b.deplacer_boss (true); b.missiles (missile_boss1,missile_boss1_b,1,j_1,j_2,(BITMAP*)datafile[avionj1milieu].dat); b.ajouter_missiles (missile_boss1,1,j_1,j_2,true,true,true,true); */
for (it_liste_ennemis = liste_ennemis.begin (); it_liste_ennemis != liste_ennemis.end (); it_liste_ennemis++) { if ((*it_liste_ennemis).activer==true) { (*it_liste_ennemis).ia (1,j_1,j_2,avion); (*it_liste_ennemis).afficher_ennemis (buffer); (*it_liste_ennemis).missiles (buffer,missile_ennemis,mine); (*it_liste_ennemis).afficher_explosion ((BITMAP*)datafile[explosion1n1].dat, (BITMAP*)datafile[explosion1n2].dat, (BITMAP*)datafile[explosion1n3].dat, (BITMAP*)datafile[explosion1n4].dat, (BITMAP*)datafile[explosion1n5].dat, (BITMAP*)datafile[explosion1n6].dat, (BITMAP*)datafile[explosion1n7].dat, (BITMAP*)datafile[explosion1n8].dat, (BITMAP*)datafile[explosion1n9].dat, (BITMAP*)datafile[explosion1n10].dat, (BITMAP*)datafile[explosion1n11].dat, (BITMAP*)datafile[explosion1n12].dat, (BITMAP*)datafile[explosion1n13].dat, (BITMAP*)datafile[explosion1n14].dat, (BITMAP*)datafile[explosion1n15].dat, (BITMAP*)datafile[explosion1n16].dat, (BITMAP*)datafile[explosion1n17].dat, (BITMAP*)datafile[explosion1n18].dat); } }
//joueur 1 switch (choix_perso) { case 1: j_1.afficher_personnage(buffer, (BITMAP*)datafile[avionj1ggg].dat, (BITMAP*)datafile[avionj1gg].dat, (BITMAP*)datafile[avionj1g].dat, (BITMAP*)datafile[avionj1milieu].dat, (BITMAP*)datafile[avionj1d].dat, (BITMAP*)datafile[avionj1dd].dat, (BITMAP*)datafile[avionj1ddd].dat); break; case 2: j_1.afficher_personnage(buffer, (BITMAP*)datafile[avionj2ggg].dat, (BITMAP*)datafile[avionj2gg].dat, (BITMAP*)datafile[avionj2g].dat, (BITMAP*)datafile[avionj2milieu].dat, (BITMAP*)datafile[avionj2d].dat, (BITMAP*)datafile[avionj2dd].dat, (BITMAP*)datafile[avionj2ddd].dat); break; case 3: j_1.afficher_personnage(buffer, (BITMAP*)datafile[avionj3ggg].dat, (BITMAP*)datafile[avionj3gg].dat, (BITMAP*)datafile[avionj3g].dat, (BITMAP*)datafile[avionj3milieu].dat, (BITMAP*)datafile[avionj3d].dat, (BITMAP*)datafile[avionj3dd].dat, (BITMAP*)datafile[avionj3ddd].dat); break; case 4: j_1.afficher_personnage(buffer, (BITMAP*)datafile[avionj4ggg].dat, (BITMAP*)datafile[avionj4gg].dat, (BITMAP*)datafile[avionj4g].dat, (BITMAP*)datafile[avionj4milieu].dat, (BITMAP*)datafile[avionj4d].dat, (BITMAP*)datafile[avionj4dd].dat, (BITMAP*)datafile[avionj4ddd].dat); break; }
j_1.afficher_statistique (buffer,10,10,120,10,340,6,210,8,(BITMAP*)datafile[cadencedetir].dat); j_1.afficher_explosion_mort ((BITMAP*)datafile[explosion1n1].dat, (BITMAP*)datafile[explosion1n2].dat, (BITMAP*)datafile[explosion1n3].dat, (BITMAP*)datafile[explosion1n4].dat, (BITMAP*)datafile[explosion1n5].dat, (BITMAP*)datafile[explosion1n6].dat, (BITMAP*)datafile[explosion1n7].dat, (BITMAP*)datafile[explosion1n8].dat, (BITMAP*)datafile[explosion1n9].dat, (BITMAP*)datafile[explosion1n10].dat, (BITMAP*)datafile[explosion1n11].dat, (BITMAP*)datafile[explosion1n12].dat, (BITMAP*)datafile[explosion1n13].dat, (BITMAP*)datafile[explosion1n14].dat, (BITMAP*)datafile[explosion1n15].dat, (BITMAP*)datafile[explosion1n16].dat, (BITMAP*)datafile[explosion1n17].dat, (BITMAP*)datafile[explosion1n18].dat); j_1.afficher_bonus (5,200);
/* //joueur 2 j_2.afficher_personnage(buffer,(BITMAP*)datafile[avionj2ggg].dat,(BITMAP*)datafile[avionj2gg].dat,(BITMAP*)datafile[avionj2g].dat,(BITMAP*)datafile[avionj2milieu].dat,(BITMAP*)datafile[avionj2d].dat,(BITMAP*)datafile[avionj2dd].dat,(BITMAP*)datafile[avionj2ddd].dat); j_2.afficher_missiles (buffer,missile); j_2.afficher_statistique (buffer,10,20,120,20,340,16,210,18,(BITMAP*)datafile[cadencedetir].dat); j_2.afficher_explosion_mort ((BITMAP*)datafile[explosion1n1].dat, (BITMAP*)datafile[explosion1n2].dat, (BITMAP*)datafile[explosion1n3].dat, (BITMAP*)datafile[explosion1n4].dat, (BITMAP*)datafile[explosion1n5].dat, (BITMAP*)datafile[explosion1n6].dat, (BITMAP*)datafile[explosion1n7].dat, (BITMAP*)datafile[explosion1n8].dat, (BITMAP*)datafile[explosion1n9].dat, (BITMAP*)datafile[explosion1n10].dat, (BITMAP*)datafile[explosion1n11].dat, (BITMAP*)datafile[explosion1n12].dat, (BITMAP*)datafile[explosion1n13].dat, (BITMAP*)datafile[explosion1n14].dat, (BITMAP*)datafile[explosion1n15].dat, (BITMAP*)datafile[explosion1n16].dat, (BITMAP*)datafile[explosion1n17].dat, (BITMAP*)datafile[explosion1n18].dat, (BITMAP*)datafile[explosion1n19].dat, (BITMAP*)datafile[explosion1n20].dat); */
//les bonus ajouter_afficher_bonus ();
//les rochers ajouter_afficher_rochers ();
i_arrive_ennemis+=2;
draw=false;
}
while (counter <=0) {} //attend que counter se remette en marche
}
//on libere la memmoire detruire_bitmap (); unload_datafile(datafile);
return 0 ;
} END_OF_MAIN() ;
void timer(void)//notre fonction timer { counter++; } END_OF_FUNCTION(timer);//fin de la fonction timer
|