cs_mat74
Messages postés
241
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
31 mai 2004 à 12:51
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