Sie sind auf Seite 1von 71

//BOMBERMAN

// r�alis� par JULIEN Alexandre


//septembre 2006
//ce programme fonctionne sur WINDOWS XP
//il utilise la biblioth�que graphique allegro,
//les diff�rentes librairies utiles sont regroup�es dans ce m�me dossier.

/********************************************************
*********************************************************/

#include <allegro.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sound.h>
#include <math.h>
#include <fixed.h>
#define ERREUR (msg){\
set_gfx_mode(GFX_TEXT,0,0,0,0);\
allegro_message("erreur ligne %d,fichier %s: %s\n",_LINE_,_FILE_,msg);\
allegro_exit();\
exit(EXIT_FAILURE);\
}
#define ECARTX=1;
#define ECARTY=1;
int main(int argc, char *argv[])
{
//variables environnement
//declaration variables
int personnage,vie,carte,rocherx[19],rochery[19],diamantx[19],diamanty[19],
seinx[10],seiny[10],seq_anim2[20],seq_anim3,seq_anim4,seq_anim5,seq_anim6,
seq_anim7[10],seq_anim8,seq_anim9,seq_anim10,seq_anim11,seq_anim12,
seq_anim13[100],seq_anim14[20],seq_anim15[10],seq_anim16,
artefact,case_terrex[20],case_terrey[20],ct[20],parcheminx,zoom,portail,monde,
reponse,retour,argent,
starx[100],stary[100],S1,S2,S3,S4,S5,S6,S7,S8,size,splattx[100],splatty[100],d
ecalx,decaly;

long int gris,noir,bleu,violet,rose;

//compteurs
long int
t,tps,temp,temps,tp,b,c,ch,cp,f,g[10],ii,jj,k,l,m,mm,mn,n,nn,nb,r,s[10],
sp[100],tt,error,j[500];
long long int i;

// declaration variables dino


float dinox,dinoy;
int ppx,R,initial,touch,explosion,invincible,IMAGE2,MEMO[100];
long int dinohg,dinobg,dinohd,dinobd,dinogh,dinogb,dinodh,dinodb;
double tx,ty,pas,px,py;
//d�claration buffer
char buf[600];

// declaration variables ennemis


int IMAGE,nb_ennemis,plantex[100],plantey[100],plombx[3],
plomby[3],taillex[3],tailley[3],PG[100],PD[100],
PH[100],PB[100],testD[100],testG[100],testB[100],testH[100],X1[100],X2[100],
Y1[100],Y2[100],haut[100],bas[100],gauche[100],droit[100],ERROR[100],mainx[2],
mainy[2],tetex,tetey;

long int
H1[100],H2[100],B1[100],B2[100],G1[100],G2[100],D1[100],D2[100],robothg,
robothd,robotbg,robotbd,robotgh,robotgb,robotdh,robotdb,asteroidhg,
asteroidhd,asteroidbg,asteroidbd,asteroidgh,asteroidgb,asteroiddh,asteroiddb;

float balle1x[100],balle1y[100],ecartx[100],ecarty[100],pasx[3],pasy,
robotx[3],roboty[3],asteroidx[3],asteroidy[3],deltax[3],deltay[3],rapport;

//variables armes
long int armex[500],armey[500],image2[500],seq_anim[500],pente[100];
long int H11,H22,B11,B22,G11,G22,D11,D22;
int posx,posy,bonusx[100],bonusy[100],bonus[100],DEBLOC[100],munition,tir,
chargeurx,chargeury;

//initialisation variables
decalx=0;
decaly=0;
IMAGE=0;
IMAGE2=1;
b=1;
c=0;
ch=1;
cp=0;
f=1;
for(i=8;i<=10;i++)
{
g[i]=1;
}
for(i=1;i<=10;i++)
{
s[i]=1;
}
for(i=1;i<=20;i++)
{
ct[i]=0;
}
i=0;
ii=0;
jj=-1;
error=0;
R=100;
initial=0;
invincible=0;
explosion=0;
tx=32;
ty=32;
for(i=1;i<501;i++)
{
j[i]=1;
}
for(i=1;i<501;i++)
{
seq_anim[i]=0;
}
for(i=1;i<21;i++)
{
seq_anim2[i]=0;
}
seq_anim3=0;
seq_anim4=0;
seq_anim5=0;
seq_anim6=0;
for(i=1;i<11;i++)
{
seq_anim7[i]=0;
}
seq_anim8=0;
seq_anim9=0;
seq_anim10=0;
seq_anim11=0;
seq_anim12=0;
for(i=1;i<101;i++)
{
seq_anim13[i]=0;
}
for(i=1;i<=20;i++)
{
seq_anim14[i]=0;
}
for(i=8;i<=10;i++)
{
seq_anim15[i]=0;
}
seq_anim16=0;
k=1;
l=1;
m=0;
mm=0;
n=0;
nn=6;
mn=1;
r=1;
for(i=1;i<=100;i++)
{
sp[i]=0;
}
t=0;
tps=0;
temp=0;
tp=0;
temps=0;
tt=1;
reponse=0;
retour=0;
bonus[1]=0;//s�lecteur arme (bonus[1]=1 ou 2 ou..)
bonus[0]=0;//am�lioration arme(bonus[0]=1 ou 2 ou..)
for(i=1;i<101;i++)
{
DEBLOC[i]=0;
MEMO[100]=0;
starx[i]=0;
stary[i]=0;
}
nb=0;
nb_ennemis=0;
touch=0;
personnage=0;
vie=10;
carte=0;
artefact=19;
for(i=1;i<=20;i++)
{
case_terrex[i]=1;
}
parcheminx=1;
zoom=1;
monde=2;
portail=1;
pas=0.1;
px=2;
py=2;
ppx=2;
ecartx[i]=1;
ecarty[i]=1;
pasx[1]=1;
pasx[2]=1;
pasy=1;
for(i=1;i<501;i++)
{
armex[i]=0;
armey[i]=0;
}
munition=100;
tir=0;
for(i=1;i<101;i++)
{
pente[i]=0;
}
deltax[1]=1;
deltay[1]=1;
deltax[2]=1;
deltay[2]=1;
deltax[3]=1;
deltay[3]=1;
taillex[1]=30;
tailley[1]=30;
taillex[2]=20;
tailley[2]=20;
taillex[3]=10;
tailley[3]=10;
for(i=1;i<101;i++)
{
PH[i]=0;
PB[i]=0;
PG[i]=0;
PD[i]=0;
X1[i]=0;
X2[i]=0;
Y1[i]=0;
Y2[i]=0;
haut[i]=1;
bas[i]=1;
gauche[i]=1;
droit[i]=1;
testH[i]=0;
testB[i]=0;
testG[i]=0;
testD[i]=0;
H1[i]=0; H11=0;
H2[i]=0; H22=0;
B1[i]=0; B11=0;
B2[i]=0; B22=0;
G1[i]=0; G11=0;
G2[i]=0; G22=0;
D1[i]=0; D11=0;
D2[i]=0; D22=0;
}
error=0;
argent=0;
size=1;

//initialisation bitmaps
BITMAP*page;
BITMAP*terrain[10];
BITMAP*fond;
BITMAP*ile;
BITMAP*ennemi[9];
BITMAP*dino[12];
BITMAP*smile[8];
BITMAP*arme[10];
BITMAP*plomb[6];
BITMAP*bouledefeu[17];
BITMAP*bomb[7];
BITMAP*bombe[12];
BITMAP*robot[10];
BITMAP*flamme[12];
BITMAP*papillon[2];
BITMAP*oiseau[2];
BITMAP*asteroid[35];
BITMAP*oeil[12];
BITMAP*charbonardent[2];
BITMAP*plante[12];
BITMAP*rocher[18];
BITMAP*mur[20];
BITMAP*fumee[3];
BITMAP*cristal[5];
BITMAP*bellerouge[2];
BITMAP*main[22];
BITMAP*tete[12];
//BITMAP*missile;
BITMAP*parchemin;
BITMAP*case_terre[11];
BITMAP*fin;
BITMAP*ghost[20];
BITMAP*nichon[64];
BITMAP*etoile;
BITMAP*ready;
BITMAP*over;
BITMAP*mitraillette;
BITMAP*chargeur[8];
BITMAP*pistolet;
BITMAP*life;
BITMAP*colle;
BITMAP*tetedemort;
BITMAP*stop;
BITMAP*star;
BITMAP*munitions;
BITMAP*splatt[12];
BITMAP*number[10];

//initialisation allegro
set_uformat(U_ASCII);
allegro_init();
install_keyboard();
srand(time(NULL));
install_mouse();
set_color_depth(32);

//controle erreur affichage graphique


if(set_gfx_mode(GFX_AUTODETECT,640,480,0,0)!=0)
{
allegro_message(allegro_error);
allegro_exit();
return 1;
}

//r�servation m�moire double buffer


page=create_bitmap(1024,768);

//contr�le erreur
if(!page)
{
allegro_message(allegro_error);
destroy_bitmap(page);
return 0;
while(!key[KEY_ESC]){}
}

//affichage bitmaps
page=load_bitmap("personnage.bmp",NULL);
fond=load_bitmap("fond.bmp",NULL);
ile=load_bitmap("ile.bmp",NULL);
//missile=load_bitmap("bonus1.bmp",NULL);
parchemin=load_bitmap("parchemin.bmp",NULL);
etoile=load_bitmap("etoile.bmp",NULL);
ready=load_bitmap("ready.bmp",NULL);
mitraillette=load_bitmap("mitraillette.bmp",NULL);
pistolet=load_bitmap("pistolet.bmp",NULL);
life=load_bitmap("life.bmp",NULL);
colle=load_bitmap("colle.bmp",NULL);
tetedemort=load_bitmap("tete de mort.bmp",NULL);
stop=load_bitmap("stop.bmp",NULL);
star=load_bitmap("star.bmp",NULL);
over=load_bitmap("over.bmp",NULL);

//charger les 9 images de terrain


for(i=1;i<10;i++)
{
sprintf(buf,"terrain%d.bmp",i);
terrain[i]=load_bitmap(buf,NULL);
}

//charger les 12 images du dino


for(i=1;i<13;i++)
{
sprintf(buf,"dino%d.bmp",i);
dino[i]=load_bitmap(buf,NULL);
}

// charger les 8 images du smile


for(i=1;i<9;i++)
{
sprintf(buf,"smile%d.bmp",i);
smile[i]=load_bitmap(buf,NULL);
}

//charger les 8 images des ennemis


for(i=1;i<9;i++)
{
sprintf(buf,"ennemi%d.bmp",i);
ennemi[i]=load_bitmap(buf,NULL);
}

//charger les 2 images de papillon


for(i=1;i<3;i++)
{
sprintf(buf,"papillon%d.bmp",i);
papillon[i]=load_bitmap(buf,NULL);
}

//charger les 2 images de oiseau


for(i=1;i<3;i++)
{
sprintf(buf,"oiseau%d.bmp",i);
oiseau[i]=load_bitmap(buf,NULL);
}

//charger les 5 types diff�rents de cristal


for(i=1;i<6;i++)
{
sprintf(buf,"cristal%d.bmp",i);
cristal[i]=load_bitmap(buf,NULL);
}

//charger les 10 images de l'arme n�1.


for(i=0;i<10;i++)
{
sprintf(buf,"arme%d.bmp",i);
arme[i]=load_bitmap(buf,NULL);
}

//charger les 6 images de plomb.


for(i=1;i<7;i++)
{
sprintf(buf,"plomb%d.bmp",i);
plomb[i]=load_bitmap(buf,NULL);
}

//charger les 17 images de la boule de feu.


for(i=1;i<18;i++)
{
sprintf(buf,"bouledefeu%d.bmp",i);
bouledefeu[i]=load_bitmap(buf,NULL);
}

//charger les 7 images de la bombe n�1.


for(i=1;i<8;i++)
{
sprintf(buf,"bomb%d.bmp",i);
bomb[i]=load_bitmap(buf,NULL);
}

//charger les 12 images de la bombe n�2.


for(i=1;i<13;i++)
{
sprintf(buf,"bombe%d.bmp",i);
bombe[i]=load_bitmap(buf,NULL);
}

//charger les 10 images de robot.


for(i=1;i<11;i++)
{
sprintf(buf,"robot%d.bmp",i);
robot[i]=load_bitmap(buf,NULL);
}

//charger les 12 images de flamme.


for(i=1;i<13;i++)
{
sprintf(buf,"flamme%d.bmp",i);
flamme[i]=load_bitmap(buf,NULL);
}

//charger les 12 images de l'oeil d�moniaque.


for(i=1;i<13;i++)
{
sprintf(buf,"oeil%d.bmp",i);
oeil[i]=load_bitmap(buf,NULL);
}

//charger les 35 images d'ast�roide.


for(i=1;i<36;i++)
{
sprintf(buf,"asteroid%d.bmp",i);
asteroid[i]=load_bitmap(buf,NULL);
}
//charger les 2 images des charbons ardents.
for(i=1;i<3;i++)
{
sprintf(buf,"charbon ardent%d.bmp",i);
charbonardent[i]=load_bitmap(buf,NULL);
}

//charger les 12 images des plantes extraterrestres et plantes communes.


for(i=1;i<13;i++)
{
sprintf(buf,"plante%d.bmp",i);
plante[i]=load_bitmap(buf,NULL);
}

//charger les 18 images des rochers.


for(i=1;i<19;i++)
{
sprintf(buf,"rocher%d.bmp",i);
rocher[i]=load_bitmap(buf,NULL);
}

//charger les 20 images des murs.


for(i=1;i<21;i++)
{
sprintf(buf,"mur%d.bmp",i);
mur[i]=load_bitmap(buf,NULL);
}

//charger les 3 images de fum�e.


for(i=1;i<4;i++)
{
sprintf(buf,"fumee%d.bmp",i);
fumee[i]=load_bitmap(buf,NULL);
}

//charger les 2 images des belles rouges.


for(i=1;i<3;i++)
{
sprintf(buf,"belle rouge%d.bmp",i);
bellerouge[i]=load_bitmap(buf,NULL);
}

//charger les 22 images des mains.


for(i=1;i<23;i++)
{
sprintf(buf,"main%d.bmp",i);
main[i]=load_bitmap(buf,NULL);
}

//charger les 12 images des t�tes.


for(i=1;i<13;i++)
{
sprintf(buf,"tete%d.bmp",i);
tete[i]=load_bitmap(buf,NULL);
}

//charger les 20 images des fant�mes.


for(i=1;i<21;i++)
{
sprintf(buf,"ghost%d.bmp",i);
ghost[i]=load_bitmap(buf,NULL);
}

//charger les 64 images des nichons.


for(i=1;i<65;i++)
{
sprintf(buf,"nichon%d.bmp",i);
nichon[i]=load_bitmap(buf,NULL);
}

//charger les 8 images de chargeur.


for(i=1;i<9;i++)
{
sprintf(buf,"chargeur%d.bmp",i);
chargeur[i]=load_bitmap(buf,NULL);
}

//charger les 12 images des splatts.


for(i=1;i<13;i++)
{
sprintf(buf,"splatt%d.bmp",i);
splatt[i]=load_bitmap(buf,NULL);
}

//charger les 10 images des chiffres.


for(i=0;i<10;i++)
{
sprintf(buf,"number%d.bmp",i);
number[i]=load_bitmap(buf,NULL);
}

//charger les 11 images des cases en terre.


for(i=1;i<=11;i++)
{
sprintf(buf,"case_terre%d.bmp",i);
case_terre[i]=load_bitmap(buf,NULL);
}

i=0;

//choix du tir de l'arme n�1: simple coup ou en mode rafale


//(si bonus mitraillette obtenu!)

//charger les images du missile radiot�l�guid�


//(on dirige le missile en temps r�el avec les touches du pav� num�rique).

//charger les images du missile autonome (vers la cible uniquement


//(pas de retour) ,sinon il explose).

////////////////////////////////////////////////////////////////////////////////

//affichage initial: �cran de d�marrage


//s�lection personnage

while(!key[KEY_RIGHT])
{
if(i==4)
{
i=0;
}

rest(150);
i=i+1;

page=load_bitmap("personnage.bmp",NULL);
stretch_sprite(page,smile[i],33,341,32,32);
stretch_sprite(page,dino[i],33,172,32,32);
stretch_sprite(screen,page,0,0,640,480);

if(keypressed)
{
if(key[KEY_1])
{
personnage=1;
}

else if(key[KEY_2])
{
personnage=2;
}
}
}

while(!key[KEY_ENTER])
{
//s�lection carte
clear(page);
page=load_bitmap("carte.bmp",NULL);
stretch_sprite(screen,page,0,0,640,480);

if(keypressed)
{
if(key[KEY_1])
{
carte=1;
}

else if(key[KEY_2])
{
carte=2;
}

else if(key[KEY_3])
{
carte=3;
}

else if(key[KEY_4])
{
carte=4;
}
}
}

//affichage terrain
if(carte==1)
{
blit(terrain[1],page,0,0,0,0,640,480);
}

if(carte==2)
{
blit(terrain[2],page,0,0,0,0,640,480);
}

if(carte==3)
{
stretch_sprite(page,fond,0,0,640,480);
masked_blit(terrain[3],page,0,0,0,0,640,480);
}

if(carte==4)
{
stretch_sprite(page,ile,0,0,640,480);
masked_blit(terrain[4],page,0,0,0,0,640,480);
}

while(!key[KEY_SPACE])
{
//combien d'ennemis?
textout(page,font,"choisissez votre niveau de difficult�:",80,10,250);
textout(page,font,"novice-->1 initi�-->2 exp�riment�-->3",80,30,250);
textout(page,font,"choisissez taille image:",80,70,makecol(100,100,100));
textout(page,font,"rapport 1:1-->4 rapport 4/3-->5",80,90,makecol(100,100,100));
textout(page,font,"appuyer sur ESPACE pour commencer",100,300,175);
stretch_sprite(page,ready,200,200,300,50);
blit(page,screen,0,0,0,0,640,480);

if(keypressed)
{
if(key[KEY_1])
{
//nb de boucles � effectuer
nb_ennemis=2;
}

if(key[KEY_2])
{
//nb de boucles � effectuer
nb_ennemis=3;
}

if(key[KEY_3])
{
//nb de boucles � effectuer
nb_ennemis=5;
}

if(key[KEY_4])
{
//rapport image taille r�elle
rapport=1;
}

if(key[KEY_5])
{
//rapport image 4/3: image agrandie!
rapport=1.6;
}

}
}

mainx[1]=267*rapport;
mainy[1]=415*rapport;
mainx[2]=308*rapport;
mainy[2]=415*rapport;
tetex=285*rapport;
tetey=435*rapport;
robotx[1]=388*rapport;
roboty[1]=323*rapport;
robotx[2]=61*rapport;
roboty[2]=323*rapport;
robotx[3]=300*rapport;
roboty[3]=220*rapport;
asteroidx[1]=286*rapport;
asteroidy[1]=66*rapport;
asteroidx[2]=60*rapport;
asteroidy[2]=398*rapport;
asteroidx[3]=63*rapport;
asteroidy[3]=324*rapport;
plombx[1]=77*rapport;
plomby[1]=428*rapport;
plombx[2]=93*rapport;
plomby[2]=251*rapport;
plantex[1]=79*rapport;
plantey[1]=428*rapport;
plantex[2]=90*rapport;
plantey[2]=251*rapport;
plantex[3]=175*rapport;
plantey[3]=180*rapport;
plantex[4]=182*rapport;
plantey[4]=325*rapport;
plantex[5]=385*rapport;
plantey[5]=254*rapport;
plantex[6]=585*rapport;
plantey[6]=326*rapport;
plantex[7]=421*rapport;
plantey[7]=433*rapport;
plantex[8]=22*rapport;
plantey[8]=290*rapport;
plantex[9]=585*rapport;
plantey[9]=400*rapport;
plantex[10]=585*rapport;
plantey[10]=430*rapport;
plantex[11]=60*rapport;
plantey[11]=105*rapport;
rocherx[1]=59*rapport;
rochery[1]=97*rapport;
rocherx[2]=82*rapport;
rochery[2]=174*rapport;
rocherx[3]=19*rapport;
rochery[3]=393*rapport;
rocherx[4]=221*rapport;
rochery[4]=394*rapport;
rocherx[5]=22*rapport;
rochery[5]=174*rapport;
rocherx[6]=170*rapport;
rochery[6]=175*rapport;
rocherx[7]=20*rapport;
rochery[7]=284*rapport;
rocherx[8]=300*rapport;
rochery[8]=394*rapport;
rocherx[9]=301*rapport;
rochery[9]=320*rapport;
rocherx[10]=380*rapport;
rochery[10]=393*rapport;
rocherx[11]=580*rapport;
rochery[11]=395*rapport;
rocherx[12]=579*rapport;
rochery[12]=428*rapport;
rocherx[13]=579*rapport;
rochery[13]=321*rapport;
rocherx[14]=502*rapport;
rochery[14]=281*rapport;
rocherx[15]=462*rapport;
rochery[15]=247*rapport;
rocherx[16]=538*rapport;
rochery[16]=246*rapport;
rocherx[17]=382*rapport;
rochery[17]=175*rapport;
rocherx[18]=382*rapport;
rochery[18]=249*rapport;
rocherx[19]=539*rapport;
rochery[19]=98*rapport;
seinx[1]=140*rapport;
seiny[1]=425*rapport;
seinx[2]=225*rapport;
seiny[2]=425*rapport;
seinx[3]=315*rapport;
seiny[3]=425*rapport;
seinx[4]=405*rapport;
seiny[4]=425*rapport;
seinx[5]=495*rapport;
seiny[5]=425*rapport;
seinx[6]=48*rapport;
seiny[6]=425*rapport;
seinx[7]=583*rapport;
seiny[7]=425*rapport;
bonusx[1]=107*rapport;
bonusy[1]=248*rapport;
chargeurx=320*rapport;
chargeury=120*rapport;
dinox=40*rapport;
dinoy=100*rapport;
for(i=1;i<=nb_ennemis;i++)
{
ERROR[i]=1;
balle1x[i]=rand()%500*rapport;
balle1y[i]=rand()%300*rapport;
}

////////////////////////////////////////////////////////////////////////////////

while(!key[KEY_ESC])
{
gris=getpixel(terrain[carte],1,1);
noir=getpixel(terrain[carte],2,2);

if(monde==2)
{
gris=getpixel(terrain[8],1,1);
noir=getpixel(terrain[8],2,2);
}

if(carte==3)
{
violet=getpixel(terrain[carte],183,167);
}

if(carte==4)
{
bleu=getpixel(terrain[carte],146,86);
}

clear(page);
//ALLEGRO_SOUND_H("its not unusual");

//ralentissement du jeu: doit �tre modifi�e en fct de la vitesse de l'ordi!

//r�initialisation variable balle


if(monde==0 || monde==2)
{
for(i=1;i<=nb_ennemis;i++)
{
ecartx[i]=1;
ecarty[i]=1;

if(seq_anim9==1)
{
ecartx[i]=ecartx[i]/2;
ecarty[i]=ecarty[i]/2;
}

if(seq_anim12==1)
{
ecartx[i]=0;
ecarty[i]=0;
}
}
}

//Ri.variables dino
if(seq_anim4==0)
{
if(seq_anim5==0)
{
py=2;
}

if(seq_anim6==0)
{
px=2;
}
}

if(monde==0)
{
//affichage terrain
if(carte==1)
{
stretch_sprite(page,terrain[1],0+decalx,0+decaly,640*rapport,480*rapport);
}

if(carte==2)
{
stretch_sprite(page,terrain[2],0+decalx,0+decaly,640*rapport,480*rapport);
}

if(carte==3)
{
stretch_sprite(page,fond,decalx,decaly,640*rapport,480*rapport);
stretch_sprite(page,terrain[3],decalx,decaly,640*rapport,480*rapport);
}

if(carte==4)
{
stretch_sprite(page,ile,decalx,decaly,640*rapport,480*rapport);
stretch_sprite(page,terrain[4],decalx,decaly,640*rapport,480*rapport);
}
}

if(monde==1)
{
stretch_sprite(page,fond,decalx,decaly,640*rapport,480*rapport);
stretch_sprite(page,terrain[6],decalx,decaly,640*rapport,480*rapport);
}

if(monde==2)
{
stretch_sprite(page,terrain[8],decalx,decaly,640*rapport,480*rapport);
stretch_sprite(page,terrain[9],decalx+640*rapport-
(20*rapport),decaly,640*rapport,480*rapport);
}

////////////////////////////////////////////////////////////////////////////////

// controle personnage(dino);
//et
//contr�le collision dino-d�cor (dino-murs et blocs rocheux).
dinohg=getpixel(page,dinox,dinoy-fabs(py));
dinohd=getpixel(page,dinox+32,dinoy-fabs(py));
dinobd=getpixel(page,dinox+32,dinoy+fabs(py)+32);
dinobg=getpixel(page,dinox,dinoy+fabs(py)+32);
dinogh=getpixel(page,dinox-fabs(px),dinoy);
dinogb=getpixel(page,dinox-fabs(px),dinoy+32);
dinodh=getpixel(page,dinox+fabs(px)+32,dinoy);
dinodb=getpixel(page,dinox+fabs(px)+32,dinoy+32);

if(keypressed && seq_anim3==0 && seq_anim4==0 &&


seq_anim7[1]==0 && seq_anim7[2]==0 && seq_anim7[3]==0 && seq_anim7[4]==0 &&
seq_anim7[5]==0 && seq_anim7[6]==0 && seq_anim7[7]==0 && seq_anim7[8]==0)
{
if(key[KEY_UP] && seq_anim5==0)
{
if(dinoy-py>0)
{
if(IMAGE2==5||IMAGE2==3)
{
IMAGE2=1;
}
if(IMAGE2==6||IMAGE2==4)
{
IMAGE2=2;
}

for(i=1;i<20;i++)
{
if(dinohg==gris||dinohd==gris|| ((dinox+32>=rocherx[i]) &&
(dinox<=rocherx[i]+32*rapport) && (dinoy-fabs(py)<=rochery[i]+32*rapport) &&
(dinoy-fabs(py)+32>=rochery[i]) && rocherx[i]!=0 && rochery[i]!=0 &&
monde==0)
||((dinox+32>=case_terrex[i]) && (dinox<=case_terrex[i]+42*rapport) &&
(dinoy-fabs(py)<=case_terrey[i]+42*rapport) && (dinoy+32-
fabs(py)>=case_terrey[i])&&
case_terrex[i]!=0 && monde==2))
{
py=0;
}
}
dinoy=dinoy-py;
}
if(rapport>1)
{
decaly=decaly+py;
}
}

else if(key[KEY_DOWN] && seq_anim5==0)


{
if(dinoy+py<480-32)
{
if(IMAGE2==5||IMAGE2==1)
{
IMAGE2=3;
}
if(IMAGE2==6||IMAGE2==2)
{
IMAGE2=4;
}
for(i=1;i<20;i++)
{
if(dinobg==gris||dinobd==gris|| ((dinox+32>=rocherx[i]) &&
(dinox<=rocherx[i]+32*rapport) && (dinoy+fabs(py)<=rochery[i]+32*rapport) &&
(dinoy+fabs(py)+32>=rochery[i]) && rocherx[i]!=0 && rochery[i]!=0 &&
monde==0)
||((dinox+32>=case_terrex[i]) && (dinox<=case_terrex[i]+42*rapport) &&
(dinoy+fabs(py)<=case_terrey[i]+42*rapport) &&
(dinoy+32+fabs(py)>=case_terrey[i])&&
case_terrex[i]!=0 && monde==2))
{
py=0;
}
}
dinoy=dinoy+py;
}
if(rapport>1)
{
decaly=decaly-py;
}
}

else if(key[KEY_LEFT] && seq_anim6==0)


{
if(dinox-px>0)
{
IMAGE2=5;
for(i=1;i<20;i++)
{
if(dinogh==gris||dinogb==gris|| ((dinox-fabs(px)+32>=rocherx[i]) &&
(dinox-fabs(px)<=rocherx[i]+32*rapport) && (dinoy<=rochery[i]+32*rapport) &&

(dinoy+32>=rochery[i]) && rocherx[i]!=0 && rochery[i]!=0 && monde==0)


||((dinox+32-fabs(px)>=case_terrex[i]) && (dinox-
fabs(px)<=case_terrex[i]+42*rapport) &&
(dinoy<=case_terrey[i]+42*rapport) && (dinoy+32>=case_terrey[i])&&
case_terrex[i]!=0 && monde==2))
{
px=0;
}
}
dinox=dinox-px;
}
if(rapport>1)
{
decalx=decalx+px;
}
}

else if(key[KEY_RIGHT] && seq_anim6==0)


{
if(dinox+px<640-32)
{
IMAGE2=6;
for(i=1;i<20;i++)
{
if(dinodh==gris||dinodb==gris|| ((dinox+fabs(px)+32>=rocherx[i]) &&
(dinox+fabs(px)<=rocherx[i]+32*rapport) && (dinoy<=rochery[i]+32*rapport) &&

(dinoy+32>=rochery[i]) && rocherx[i]!=0 && rochery[i]!=0 && monde==0)


||((dinox+32+fabs(px)>=case_terrex[i]) &&
(dinox+fabs(px)<=case_terrex[i]+42*rapport) &&
(dinoy<=case_terrey[i]+42*rapport) && (dinoy+32>=case_terrey[i])&&
case_terrex[i]!=0 && monde==2))
{
px=0;
}
}
dinox=dinox+px;
}
if(rapport>1)
{
decalx=decalx-px;
}
}
}

////////////////////////////////////////////////////////////////////////////////

// contr�le collision dino bords

if(dinox+px>640-32)
{
if(key[KEY_RIGHT])
{
dinox=dinox;
}
}

if(dinox+px<0)
{
if(key[KEY_LEFT])
{
dinox=dinox;
}
}

if(dinoy+py>480-32)
{
if(key[KEY_DOWN])
{
dinoy=dinoy;
}
}

if(dinoy+py<0)
{
if(key[KEY_UP])
{
dinoy=dinoy;
}
}

////////////////////////////////////////////////////////////////////////////////

if(seq_anim6==1)
{
if(rapport>1)
{
decalx=decalx-px;
}
}

if(seq_anim5==1)
{
if(rapport>1)
{
decaly=decaly-py;
}
}

if (seq_anim16==1)
{
if(IMAGE2==6)
{
decalx=decalx-px;
dinox=dinox-px;
}
if(IMAGE2==5)
{
decalx=decalx+px;
dinox=dinox+px;
}
}
////////////////////////////////////////////////////////////////////////////////

tetex=tetex+decalx;
tetey=tetey+decaly;
bonusx[1]=bonusx[1]+decalx;
bonusy[1]=bonusy[1]+decaly;
chargeurx=chargeurx+decalx;
chargeury=chargeury+decaly;

for(i=1;i<=nb_ennemis;i++)
{
balle1x[i]=balle1x[i]+decalx;
balle1y[i]=balle1y[i]+decaly;
splattx[i]=splattx[i]+decalx;
splatty[i]=splatty[i]+decaly;
}

for(i=1;i<=2;i++)
{
plombx[i]=plombx[i]+decalx;
plomby[i]=plomby[i]+decaly;
mainx[i]=mainx[i]+decalx;
mainy[i]=mainy[i]+decaly;
}
for(i=1;i<=3;i++)
{
robotx[i]=robotx[i]+decalx;
roboty[i]=roboty[i]+decaly;
asteroidx[i]=asteroidx[i]+decalx;
asteroidy[i]=asteroidy[i]+decaly;
}

if(monde==1)
{
for(i=1;i<=7;i++)
{
seinx[i]=seinx[i]+decalx;
seiny[i]=seiny[i]+decaly;
}
}

if(monde==2)
{
for(i=1;i<=8;i++)
{
seinx[i]=seinx[i]+decalx;
seiny[i]=seiny[i]+decaly;
}
}

for(i=1;i<=10;i++)
{
if(case_terrex[i]!=0)
{
case_terrex[i]=case_terrex[i]+decalx;
case_terrey[i]=case_terrey[i]+decaly;
}
}

for(i=1;i<=11;i++)
{
plantex[i]=plantex[i]+decalx;
plantey[i]=plantey[i]+decaly;
}

for(i=1;i<20;i++)
{
if(rocherx[i]!=0 && rochery[i]!=0)
{
rocherx[i]=rocherx[i]+decalx;
rochery[i]=rochery[i]+decaly;
}
if(diamantx[i]!=0)
{
diamantx[i]=diamantx[i]+decalx;
diamanty[i]=diamanty[i]+decaly;
}
}

////////////////////////////////////////////////////////////////////////////////
if(monde==0||monde==2)
{

for(i=1;i<=nb_ennemis;i++)
{
////////////////////////////////////////////////////////////////////////////////

//les ennemis ne doivent pas s'encastrer les uns dans les autres!

for(ii=1;ii<=nb_ennemis;ii++)
{
// "l'op�rateur >" �vite que les indices ne soient comptabilis�s deux fois
//sinon les ennemis s'immobiliseraient!
if(fabs(balle1x[i]-balle1x[ii])<=32 && fabs(balle1y[i]-balle1y[ii])<=32 && i>ii
&& i!=ii)
{
ecartx[i]=-ecartx[i];
ecarty[i]=-ecarty[i];
}
}
////////////////////////////////////////////////////////////////////////////////

//contr�le ennemis
//et
//contr�le collision ennemis-d�cor

//ennemis un et deux
//perception de leur environnement= recherche de "gris".

// haut
H1[i]=getpixel(page,balle1x[i],balle1y[i]-1);
H2[i]=getpixel(page,balle1x[i]+32,balle1y[i]-1);

// bas
B1[i]=getpixel(page,balle1x[i],balle1y[i]+32+1);
B2[i]=getpixel(page,balle1x[i]+32,balle1y[i]+1+32);

// gauche
G1[i]=getpixel(page,balle1x[i]-1,balle1y[i]);
G2[i]=getpixel(page,balle1x[i]-1,balle1y[i]+32);

// droit
D1[i]=getpixel(page,balle1x[i]+1+32,balle1y[i]);
D2[i]=getpixel(page,balle1x[i]+1+32,balle1y[i]+32);

////////////////////////////////////////////////////////////////////////////////
//ennemis principaux: fant�mes ou autres. Sur ces derniers,
//l'intelligence artificielle est la plus �labor�e.En effet
//ils peuvent s'en sortir dans la plupart des situations,et
//cela m�me quand l'environnement ne s'y pr�te pas.
//ex:un ennemi bloqu� cherche toujours une porte de sortie,pour cela
//il envisage toutes les possiblit�s et si cela s'av�rait �tre inutile
//il modifie sa fa�on de proc�der.(�laboration d'un algorithme de profondeur).
////////////////////////////////////////////////////////////////////////////////
//ennemis un et deux
if(dinoy==balle1y[i])
{
//contournement=0;
if((balle1x[i]<dinox) && (D2[i]!=gris) && (D1[i]!=gris))
{
balle1x[i]=balle1x[i]+ecartx[i];
IMAGE=4;
}

else if((balle1x[i]>dinox) && (G2[i]!=gris) && (G1[i]!=gris))


{
balle1x[i]=balle1x[i]-ecartx[i];
IMAGE=3;
}

//si les coordonn�es ennemis-dino coincident la/le balle/goofy "s'accroche" au


dino!
else if( balle1x[i]+32>=dinox && balle1x[i]<=dinox+32 && balle1y[i]<=dinoy+32
&& balle1y[i]+32>=dinoy && invincible==0)
{
ecartx[i]=0;
touch=1;
}

//r�troaction

//ennemis un et deux
//cas o� balle/goofy et dino sont sur une meme ordonn�e
else if(testH[i]==1)
{
PH[i]=1;
PB[i]=0;
}

else if(testB[i]==1)
{
PB[i]=1;
PH[i]=0;
}

PD[i]=0;
PG[i]=0;

////////////////////////////////////////////////////////////////////////////////

//ennemis un et deux
if((balle1y[i]>dinoy && PB[i]==0) || (PH[i]==1))
{
testH[i]=1;
testB[i]=0;

if((balle1x[i]<dinox && PG[i]==0) || (PD[i]==1))


{
testD[i]=1;
testG[i]=0;

//si contournement possible(r�gle des priorit�s)!!!


// vers le haut
if((H1[i]!=gris) && (H2[i]!=gris) && (haut[i]==1))
{
//si direction balle/goofy vers le haut autoris�
balle1y[i]=balle1y[i]-ecarty[i];
IMAGE=1;
}

//vers la droite
else if((D1[i]!=gris) && (D2[i]!=gris) && (droit[i]==1))
{
//si direction balle/goofy vers la droite autoris�e
balle1x[i]=balle1x[i]+ecartx[i];
X2[i]=balle1x[i];
//PH[i]=0;
IMAGE=4;

// r�initialise les priorit�s


if(X2[i]!=X1[i])
{
haut[i]=1;
}

//vers le bas
else if((B1[i]!=gris) && (B2[i]!=gris))
{
balle1y[i]=balle1y[i]+ecarty[i];
haut[i]=0;
Y2[i]=balle1y[i];
X1[i]=balle1x[i];
IMAGE=2;

if(Y2[i]!=Y1[i])
{
droit[i]=1;
}

//sinon balle/goofy rebrousse chemin(vers la gauche)


else if((G1[i]!=gris) && (G2[i]!=gris))
{
balle1x[i]=balle1x[i]-ecartx[i];
droit[i]=0;
Y1[i]=balle1y[i];
//PH[i]=0;
IMAGE=3;
}

else{
ERROR[i]=1;
haut[i]=1;
droit[i]=1;
}
}

else if((balle1x[i]>dinox && PD[i]==0) ||(PG[i]==1))


{
testG[i]=1;
testD[i]=0;

//si contournement possible vers le haut


if((H1[i]!=gris) && (H2[i]!=gris) && (haut[i]==1))
{
// si direction balle/goofy vers le haut autoris�
balle1y[i]=balle1y[i]-ecarty[i];
IMAGE=1;
}

// si direction goofy/balle vers la gauche autoris�e


else if((G1[i]!=gris) && (G2[i]!=gris) && (gauche[i]==1))
{
balle1x[i]=balle1x[i]-ecartx[i];
Y1[i]=balle1y[i];
X2[i]=balle1x[i];
//PH[i]=0;
IMAGE=3;

if(X2[i]!=X1[i])
{
haut[i]=1;
}

// si direction balle/goofy vers le bas autoris�


else if((B1[i]!=gris) && (B2[i]!=gris))
{
balle1y[i]=balle1y[i]+ecarty[i];
haut[i]=0;
X1[i]=balle1x[i];
Y2[i]=balle1y[i];
IMAGE=2;

if(Y2[i]!=Y1[i])
{
gauche[i]=1;
}

//sinon balle/goofy rebrousse chemin(vers la droite)


else if((D1[i]!=gris) && (D2[i]!=gris))
{
balle1x[i]=balle1x[i]+ecartx[i];
Y1[i]=balle1y[i];
gauche[i]=0;
//PH[i]=0;
IMAGE=4;
}

else{
ERROR[i]=1;
haut[i]=1;
gauche[i]=1;
}
}
}

////////////////////////////////////////////////////////////////////////////////

//ennemis un et deux
if((balle1y[i]<dinoy && PH[i]==0) || (PB[i]==1))
{
testB[i]=1;
testH[i]=0;

if((balle1x[i]<dinox && PG[i]==0) || (PD[i]==1))


{
testD[i]=1;
testG[i]=0;

//si contournement possible vers le bas


if((B1[i]!=gris) && (B2[i]!=gris) && (bas[i]==1))
{
// si direction balle/goofy vers le bas autoris�
balle1y[i]=balle1y[i]+ecarty[i];
IMAGE=2;
}

// si direction balle/goofy vers la droite autoris�e


else if((D1[i]!=gris) && (D2[i]!=gris) && (droit[i]==1))
{
balle1x[i]=balle1x[i]+ecartx[i];
X2[i]=balle1x[i];
//PB[i]=0;
IMAGE=4;

if(X2[i]!=X1[i])
{
bas[i]=1;
}

// si direction balle/goofy vers le haut autoris�


else if((H1[i]!=gris) && (H2[i]!=gris))
{
balle1y[i]=balle1y[i]-ecarty[i];
Y2[i]=balle1y[i];
X1[i]=balle1x[i];
bas[i]=0;
IMAGE=1;

if(Y2[i]!=Y1[i])
{
droit[i]=1;
}

//sinon balle/goofy rebrousse chemin(vers la gauche)


else if((G1[i]!=gris) && (G2[i]!=gris))
{
balle1x[i]=balle1x[i]-ecartx[i];
Y1[i]=balle1y[i];
droit[i]=0;
//PB[i]=0;
IMAGE=3;
}

else{
ERROR[i]=1;
bas[i]=1;
droit[i]=1;
}
}

else if((balle1x[i]>dinox && PD[i]==0) ||(PG[i]==1))


{
testG[i]=1;
testD[i]=0;

//si contournement possible


if(B1[i]!=gris && B2[i]!=gris && bas[i]==1)
{
// si direction balle/goofy vers le bas autoris�
balle1y[i]=balle1y[i]+ecarty[i];
IMAGE=2;
}

// si direction balle/goofy vers la gauche autoris�e


else if(G1[i]!=gris && G2[i]!=gris && gauche[i]==1)
{
balle1x[i]=balle1x[i]-ecartx[i];
X2[i]=balle1x[i];
//PB[i]=0;
IMAGE=3;

if(X2[i]!=X1[i])
{
bas[i]=1;
}

// si direction balle/goofy vers le haut autoris�


else if(H1[i]!=gris && H2[i]!=gris)
{
balle1y[i]=balle1y[i]-ecarty[i];
X1[i]=balle1x[i];
Y2[i]=balle1y[i];
bas[i]=0;
IMAGE=1;
if(Y2[i]!=Y1[i])
{
gauche[i]=1;
}
}

//sinon balle/goofy rebrousse chemin(vers la droite)


else if(D1[i]!=gris && D2[i]!=gris)
{
balle1x[i]=balle1x[i]+ecartx[i];
Y1[i]=balle1y[i];
gauche[i]=0;
//PB[i]=0;
IMAGE=4;
}

else{
ERROR[i]=1;
bas[i]=1;
gauche[i]=1;
}
}
}

////////////////////////////////////////////////////////////////////////////////

//r�troaction

//cas o� balle/goofy et dino sont sur une meme abscisse


if(testD[i]==1)
{
if((balle1x[i]==dinox) && (D1[i]!=gris) && (D2[i]!=gris))
{
PD[i]=1;// priorit� droite
PB[i]=0;
PH[i]=0;
}

else if((balle1x[i]==dinox) && (G1[i]!=gris) && (G2[i]!=gris))


{
PG[i]=1;// priorit� gauche
PB[i]=0;
PH[i]=0;
}
}

if(testG[i]==1)
{
if((balle1x[i]==dinox) && (G1[i]!=gris) && (G2[i]!=gris))
{
PG[i]=1;// priorit� gauche
PB[i]=0;
PH[i]=0;
}

else if((balle1x[i]==dinox) && (D1[i]!=gris) && (D2[i]!=gris))


{
PD[i]=1;// priorit� droite
PB[i]=0;
PH[i]=0;
}
}

////////////////////////////////////////////////////////////////////////////////

//contr�le si "encastration" de l'ennemi dans le d�cor

if(balle1y[i]>=460*rapport+decaly ||balle1y[i]<=50*rapport+decaly)
{
ERROR[i]=1;
}

////////////////////////////////////////////////////////////////////////////////

if(i>=3 && monde==2)


{
stretch_sprite(page,ghost[g[i+5]],balle1x[i],balle1y[i],32,32);

if(IMAGE==1||IMAGE==3 && g[i+5]==12)


{
g[i+5]=9;
}

if(IMAGE==2||IMAGE==4 && g[i+5]==20)


{
g[i+5]=17;
}
}

////////////////////////////////////////////////////////////////////////////////

// analyse de l'image � apposer � l'�cran pour la balle


else if(i%2==1)
{
if(IMAGE==1)
{
stretch_sprite(page,ennemi[1],balle1x[i],balle1y[i],32,32);
}

if(IMAGE==2)
{
stretch_sprite(page,ennemi[2],balle1x[i],balle1y[i],32,32);
}

if(IMAGE==3)
{
stretch_sprite(page,ennemi[3],balle1x[i],balle1y[i],32,32);
}

if(IMAGE==4)
{
stretch_sprite(page,ennemi[4],balle1x[i],balle1y[i],32,32);
}
if(balle1x[i]==dinox && balle1y[i]==dinoy)
{
textout(page,font," vous avez accroch� votre balle!",200,300,200);
}
}

////////////////////////////////////////////////////////////////////////////////

// analyse idem pour goofy


else if(i%2==0)
{
if(IMAGE==1)
{
stretch_sprite(page,ennemi[5],balle1x[i],balle1y[i],32,32);
}

if(IMAGE==2)
{
stretch_sprite(page,ennemi[6],balle1x[i],balle1y[i],32,32);
}

if(IMAGE==3)
{
stretch_sprite(page,ennemi[7],balle1x[i],balle1y[i],32,32);
}

if(IMAGE==4)
{
stretch_sprite(page,ennemi[8],balle1x[i],balle1y[i],32,32);
}

//messages � l'�cran et r�trocontr�les

if(balle1x[i]==dinox && balle1y[i]==dinoy)


{
textout(page,font," vous avez accroch� votre goofy!",200,300,200);
}
}

}
}

////////////////////////////////////////////////////////////////////////////////
//ennemi(s) suppl�mentaire(s):on peut ajouter autant de robots que l'on souhaite
//(choix du joueur-->niveau facile,moyen,difficile)
//mode de d�placement du robot: 2types de robot: mouvements lin�aires horizontal
et vertical.
//si personnage � port�e du robot ce dernier s'oriente vers lui et acc�l�re.
//am�lioration: changement al�atoire du sens de marche du robot,
//possibilit� de tir comme les nombreux autres ennemis.
////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{
for(i=1;i<4;i++)
{
// haut
robothg=getpixel(page,robotx[i],roboty[i]-1);
robothd=getpixel(page,robotx[i]+25,roboty[i]-1);

// bas
robotbg=getpixel(page,robotx[i],roboty[i]+25+1);
robotbd=getpixel(page,robotx[i]+25,roboty[i]+1+25);

// gauche
robotgh=getpixel(page,robotx[i]-1,roboty[i]);
robotgb=getpixel(page,robotx[i]-1,roboty[i]+25);

// droit
robotdh=getpixel(page,robotx[i]+1+25,roboty[i]);
robotdb=getpixel(page,robotx[i]+1+25,roboty[i]+25);

//le pas d'avancement s'inverse si les robots rencontrent un obstacle


//sur leur chemin ou si leur proie passe � proximit� (ici le dino ou le
smile).

if((robotgh==gris||robotgb==gris||(fabs(roboty[i]-dinoy)<=10 &&
robotx[i]<=dinox && robotdh!=gris && robotdb!=gris)) && i!=3)
{
pasx[i]=1;
}

if((robotdh==gris||robotdb==gris||(fabs(roboty[i]-dinoy)<=10 &&
robotx[i]>=dinox && robotgh!=gris && robotgb!=gris )) && i!=3)
{
pasx[i]=-1;
}

if((robothg==gris||robothd==gris||(fabs(robotx[3]-dinox)<=10 &&
roboty[3]<=dinoy)) && i==3)
{
pasy=1;
}

if((robotbg==gris||robotbd==gris||(fabs(robotx[3]-dinox)<=10 &&
roboty[3]>=dinoy)) && i==3)
{
pasy=-1;
}

if(robotx[i]+25>=dinox && robotx[i]<=dinox+32 && roboty[i]<=dinoy+32 &&


roboty[i]+25>=dinoy && invincible==0)
{
touch=1;
}

//retour vitesse initiale


if(pasx[i]>1||pasx[i]<-1)
{
pasx[i]=pasx[i]/2;
}

//acc�l�ration horizontale du robot; cette derni�re peut �tre modifi�e.


if(fabs(roboty[i]-dinoy)<=10 && i!=3)
{
pasx[i]=2*pasx[i];
}
}
//retour vitesse initiale
if(pasy>1||pasy<-1)
{
pasy=pasy/2;
}

//acc�l�ration verticale du robot; cette derni�re peut �tre modifi�e.


if(fabs(robotx[3]-dinox)<=10)
{
pasy=2*pasy;
}

if(seq_anim9==1)
{
for(i=1;i<=2;i++)
{
if(fabs(pasx[i])>=1)
{
pasx[i]=pasx[i]/2;
}
}
if(fabs(pasy)>=1)
{
pasy=pasy/2;
}
}

if(seq_anim12==1)
{
pasx[1]=pasx[2]=pasy=0;
}

robotx[1]=robotx[1]+pasx[1];
robotx[2]=robotx[2]+pasx[2];
roboty[3]=roboty[3]+pasy;
}

////////////////////////////////////////////////////////////////////////////////
//ast�roide: disponible uniquement pour la carte espace.
//d�placement et vitesse al�atoire,�volue au gr�s des collisions avec son
environnement.
//ne peut �tre contr�l� par le joueur.
////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{
if(carte==3)
{
for(i=1;i<4;i++)
{
// haut
asteroidhg=getpixel(page,asteroidx[i],asteroidy[i]-1);
asteroidhd=getpixel(page,asteroidx[i]+taillex[i],asteroidy[i]-1);
// bas
asteroidbg=getpixel(page,asteroidx[i],asteroidy[i]+taillex[i]+1);
asteroidbd=getpixel(page,asteroidx[i]+taillex[i],asteroidy[i]+1+tailley[i]);

// gauche
asteroidgh=getpixel(page,asteroidx[i]-1,asteroidy[i]);
asteroidgb=getpixel(page,asteroidx[i]-1,asteroidy[i]+tailley[i]);

// droit
asteroiddh=getpixel(page,asteroidx[i]+1+taillex[i],asteroidy[i]);
asteroiddb=getpixel(page,asteroidx[i]+1+taillex[i],asteroidy[i]+tailley[i]);

if(asteroidhg==gris||asteroidhd==gris)
{
deltay[i]=1+rand()%2;
}

if(asteroidbg==gris||asteroidbd==gris)
{
deltay[i]=-1-rand()%2;
}

if(asteroidgh==gris||asteroidgb==gris)
{
deltax[i]=1+rand()%2;
}

if(asteroiddh==gris||asteroiddb==gris)
{
deltax[i]=-1-rand()%2;
}

if(seq_anim9==1)
{
if(fabs(deltay[i])>=1)
{
deltay[i]=deltay[i]/2;
}
if(fabs(deltax[i])>=1)
{
deltax[i]=deltax[i]/2;
}
}

if(seq_anim12==1)
{
for(i=1;i<4;i++)
{
deltax[i]=deltay[i]=0;
}
}

//incr�mentation des variables de position


asteroidx[i]=asteroidx[i]+deltax[i];
asteroidy[i]=asteroidy[i]+deltay[i];
//affichage de la bitmap "asteroid"
stretch_sprite(page,asteroid[l],asteroidx[i],asteroidy[i],taillex[i],tailley[i]);

if(asteroidx[i]+taillex[i]>=dinox && asteroidx[i]<=dinox+32 &&


asteroidy[i]<=dinoy+32 && asteroidy[i]+tailley[i]>=dinoy && invincible==0)
{
touch=1;
}

}
if(l==25)
{
l=0;
}
//compteur d'images
l=l+1;
}
}

////////////////////////////////////////////////////////////////////////////////

//r�initialisation chargeur
if(munition==0)
{
if(seq_anim8==0)
{
stretch_sprite(page,etoile,320,120,32,32);
if(temp==10)
{
seq_anim8=1;
}
}
if(fabs(dinox-chargeurx)<=10 && fabs(dinoy-chargeury)<=10 && seq_anim3==0)
{
munition=500;
seq_anim8=0;
}
}

////////////////////////////////////////////////////////////////////////////////

//mode mitraillette!
if(fabs(dinox-bonusx[1])<=50 && fabs(dinoy-bonusy[1])<=30 && DEBLOC[1]==0 &&
monde==0)
{
bonus[1]=1;
if(temp==10)
{
DEBLOC[1]=1;
}
stretch_sprite(page,pistolet,100,100,400,300);
}

////////////////////////////////////////////////////////////////////////////////

//affichage bonus mitraillette


if(bonus[1]==0 && DEBLOC[1]==0)
{
stretch_sprite(page,pistolet,bonusx[1],bonusy[1],50,30);
}

////////////////////////////////////////////////////////////////////////////////

if(keypressed)
{
if(key[KEY_ENTER] && seq_anim3==0 && munition>0)
{

//r�initialisation du compteur
if(nb>=500 || (armex[nb]==0 && armey[nb]==0))
{
nb=0;
}

//mise en place d'un compteur


nb=nb+1;
image2[nb]=IMAGE2;

//compteur pour cartouches restantes


munition=munition-1;

//�a fume!
seq_anim11=1;

//initialisation des variables de position


//affichage premi�re image

if(image2[nb]==1||image2[nb]==2)
{
armex[nb]=dinox;
armey[nb]=dinoy-20;
//�tincelle lors du tir
draw_sprite(page,etoile,dinox,dinoy-20);
}

else if(image2[nb]==3||image2[nb]==4)
{
armex[nb]=dinox;
armey[nb]=dinoy+20;
//�tincelle lors du tir
draw_sprite(page,etoile,dinox,dinoy+20);
}

else if(image2[nb]==5)
{
armex[nb]=dinox-20;
armey[nb]=dinoy;
//�tincelle lors du tir
draw_sprite(page,etoile,dinox-20,dinoy);
}

else if(image2[nb]==6)
{
armex[nb]=dinox+20;
armey[nb]=dinoy;
//�tincelle lors du tir
draw_sprite(page,etoile,dinox+20,dinoy);
}

//calcul de la pente entre l'arme et l'ennemi


for(i=1;i<=nb;i++)
{

if(balle1x[(i%nb_ennemis)+1]!=armex[i])
{
pente[i]=(balle1y[(i%nb_ennemis)+1]-armey[i])/(balle1x[(i%nb_ennemis)+1]-
armex[i]);
}

}
}

if(bonus[1]==0)
{
//mode mitraillette ou non
while(key[KEY_ENTER])
{
}
}
}

////////////////////////////////////////////////////////////////////////////////

//sous certaines conditions

for(i=1;i<(nb+1);i++)
{

//la vitesse peut �tre accrue en fonction des bonus


posx=5;
posy=5;

// haut
H11=getpixel(page,armex[i]+13,armey[i]+14-posy);
H22=getpixel(page,armex[i]+16,armey[i]+14-posy);

// bas
B11=getpixel(page,armex[i]+13,armey[i]+17+posy);
B22=getpixel(page,armex[i]+16,armey[i]+posy+17);

// gauche
G11=getpixel(page,armex[i]+13-posx,armey[i]+14);
G22=getpixel(page,armex[i]+13-posx,armey[i]+17);

// droit
D11=getpixel(page,armex[i]+posx+16,armey[i]+14);
D22=getpixel(page,armex[i]+posx+16,armey[i]+17);

for(c=1;c<20;c++)
{
if((armex[i]+16>=rocherx[c]) && (armex[i]+13<=rocherx[c]+40*rapport) &&
(armey[i]+14<=rochery[c]+35*rapport) && (armey[i]+17>=rochery[c]) && armex[i]!=0
&&
armey[i]!=0 && r==1 && monde==0)
{
seq_anim2[c]=1;
seq_anim[i]=1;
}
}

for(c=1;c<=nb_ennemis;c++)
{
//si la balle d�tecte le d�cor ou un ennemi...
if((H11==gris||H22==gris||B11==gris||B22==gris||G11==gris||G22==gris||D11==gris
||D22==gris||(armex[i]+16>=balle1x[c] && armex[i]+13<=balle1x[c]+32 &&
armey[i]+14<=balle1y[c]+32 && armey[i]+17>=balle1y[c]))&& armex[i]!=0 &&
armey[i]!=0)
{
seq_anim[i]=1;
}
}

for(c=1;c<=nb_ennemis;c++)
{
//splatt!
if(seq_anim13[c]==0 && monde!=1)
{
stretch_sprite(page,splatt[12],splattx[c],splatty[c],32,32);
}

//l'ennemi a �t� touch�!! position nouvelle al�atoire


if(armex[i]+16>=balle1x[c] && armex[i]+13<=balle1x[c]+32 &&
armey[i]+14<=balle1y[c]+32 && armey[i]+17>=balle1y[c])
{

//compteur pour tirs r�ussis


tir=tir+1;

seq_anim13[c]=1;
splattx[c]=balle1x[c];
splatty[c]=balle1y[c];

if(carte==1||carte==2||monde==2)
{
do
{
balle1x[c]=rand()%600*rapport+decalx;
balle1y[c]=rand()%(450+50)*rapport+decaly;

H1[c]=getpixel(page,balle1x[c],balle1y[c]-1);
H2[c]=getpixel(page,balle1x[c]+32,balle1y[c]-1);
B1[c]=getpixel(page,balle1x[c],balle1y[c]+32+1);
B2[c]=getpixel(page,balle1x[c]+32,balle1y[c]+1+32);
G1[c]=getpixel(page,balle1x[c]-1,balle1y[c]);
G2[c]=getpixel(page,balle1x[c]-1,balle1y[c]+32);
D1[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]);
D2[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]+32);
error=error+1;
}while((H1[c]!=noir||H2[c]!=noir||B1[c]!=noir||B2[c]!=noir||
G1[c]!=noir||G2[c]!=noir||D1[c]!=noir||D2[c]!=noir||
(fabs(balle1x[c]-dinox)<=50 && fabs(balle1y[c]-dinoy)<=50)) &&
error<=100);
}

if(carte==3)
{
do
{
balle1x[c]=rand()%600*rapport+decalx;
balle1y[c]=rand()%(450+50)*rapport+decaly;

H1[c]=getpixel(page,balle1x[c],balle1y[c]-1);
H2[c]=getpixel(page,balle1x[c]+32,balle1y[c]-1);
B1[c]=getpixel(page,balle1x[c],balle1y[c]+32+1);
B2[c]=getpixel(page,balle1x[c]+32,balle1y[c]+1+32);
G1[c]=getpixel(page,balle1x[c]-1,balle1y[c]);
G2[c]=getpixel(page,balle1x[c]-1,balle1y[c]+32);
D1[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]);
D2[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]+32);
error=error+1;
}while((H1[c]==violet||H2[c]==violet||B1[c]==violet||B2[c]==violet||
G1[c]==violet||G2[c]==violet||D1[c]==violet||D2[c]==violet||
(fabs(balle1x[c]-dinox)<=50 && fabs(balle1y[c]-dinoy)<=50))&&error<=100);

if(carte==4)
{
do
{
balle1x[c]=rand()%600*rapport+decalx;
balle1y[c]=rand()%(450+50)*rapport+decaly;

H1[c]=getpixel(page,balle1x[c],balle1y[c]-1);
H2[c]=getpixel(page,balle1x[c]+32,balle1y[c]-1);
B1[c]=getpixel(page,balle1x[c],balle1y[c]+32+1);
B2[c]=getpixel(page,balle1x[c]+32,balle1y[c]+1+32);
G1[c]=getpixel(page,balle1x[c]-1,balle1y[c]);
G2[c]=getpixel(page,balle1x[c]-1,balle1y[c]+32);
D1[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]);
D2[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]+32);
error=error+1;
}while((H1[c]==bleu||H2[c]==bleu||B1[c]==bleu||B2[c]==bleu||
G1[c]==bleu||G2[c]==bleu||D1[c]==bleu||D2[c]==bleu||
(fabs(balle1x[c]-dinox)<=50 && fabs(balle1y[c]-dinoy)<=50))
&&error<=100);
}

}
}
error=0;
//sinon incr�mentation des variables de position..
//uniquement si la variable est encore valable.
if(seq_anim[i]==0 && armex[i]!=0 && armey[i]!=0)
{
//�tat initial: si bonus ==0;
if(bonus[1]==0 || bonus[1]==1)
{
if(image2[i]==1||image2[i]==2)
{
armey[i]=armey[i]-posy;
}

else if(image2[i]==3||image2[i]==4)
{
armey[i]=armey[i]+posy;
}

else if(image2[i]==5)
{
armex[i]=armex[i]-posx;
}

else if(image2[i]==6)
{
armex[i]=armex[i]+posx;
}
}

//arme davantage sophistiqu�e: pluie de balles


if(bonus[0]==1)
{
DEBLOC[10]=1;

if(i%2==0)
{
armex[i]=armex[i]+posx;
armey[i]=(jj*posx)+armey[i];
}

if(i%2==1)
{
armex[i]=armex[i]-posx;
armey[i]=(jj*posx)+armey[i];
}

jj=jj+1;

if(jj==5)
{
jj=-4;
}

//si bonus=2: arme davantage sophistiqu�e: balle orient�e vers ennemi!

if(bonus[0]==2)
{
DEBLOC[11]=1;

if(balle1x[(i%nb_ennemis)+1]-armex[i]>0)
{
armey[i]=(pente[i]*posx)+armey[i];
armex[i]=armex[i]+posx;
}

else if(balle1x[(i%nb_ennemis)+1]-armex[i]<0)
{
armey[i]=(pente[i]*(-posx))+armey[i];
armex[i]=armex[i]-posx;
}

else if(balle1x[(i%nb_ennemis)+1]==armex[i])
{
if(balle1y[(i%nb_ennemis)+1]-armey[i]>0)
{
armey[i]=armey[i]+posy;
}

else if(balle1y[(i%nb_ennemis)+1]-armey[i]<0)
{
armey[i]=armey[i]-posy;
}
}
}

////////////////////////////////////////////////////////////////////////////////

//tir r�ussi!
if(munition%100==0)
{
if(temp==10)
{
tir=0;
}
}

////////////////////////////////////////////////////////////////////////////////

if(carte==1)
{
stretch_sprite(page,arme[1],armex[i],armey[i],32,32);
}

if(carte==2)
{
stretch_sprite(page,bouledefeu[1],armex[i],armey[i],32,32);
}

if(carte==3)
{
draw_sprite(page,plomb[3],armex[i],armey[i]);
}

if(carte==4)
{
stretch_sprite(page,bombe[1],armex[i],armey[i],15,15);
}
}
}

////////////////////////////////////////////////////////////////////////////////
//choix de l'arme
if(keypressed)
{
if(key[KEY_0])
{
bonus[1]=0;
}
else if(key[KEY_1] && DEBLOC[1]==1)
{
bonus[1]=1;
}
else if(key[KEY_2] && DEBLOC[2]==1)
{
bonus[1]=2;
}

//passage en mode am�lior�


else if(key[KEY_0] && key[KEY_1] && DEBLOC[10]==1)
{
bonus[0]=1;
}

else if(key[KEY_0] && key[KEY_2] && DEBLOC[11]==1)


{
bonus[0]=2;
}

////////////////////////////////////////////////////////////////////////////////

for(c=1;c<=nb_ennemis;c++)
{
if(ERROR[c]==1)
{
ERROR[c]=0;
PD[c]=0;
PG[c]=0;
PH[c]=0;
PB[c]=0;
if(carte==1||carte==2||monde==2)
{
do
{
balle1x[c]=rand()%600*rapport+decalx;
balle1y[c]=rand()%(450+50)*rapport+decaly;

H1[c]=getpixel(page,balle1x[c],balle1y[c]-1);
H2[c]=getpixel(page,balle1x[c]+32,balle1y[c]-1);
B1[c]=getpixel(page,balle1x[c],balle1y[c]+32+1);
B2[c]=getpixel(page,balle1x[c]+32,balle1y[c]+1+32);
G1[c]=getpixel(page,balle1x[c]-1,balle1y[c]);
G2[c]=getpixel(page,balle1x[c]-1,balle1y[c]+32);
D1[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]);
D2[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]+32);
error=error+1;
}while((H1[c]!=noir||H2[c]!=noir||B1[c]!=noir||B2[c]!=noir||
G1[c]!=noir||G2[c]!=noir||D1[c]!=noir||D2[c]!=noir||
(fabs(balle1x[c]-dinox)<=30||fabs(balle1y[c]-dinoy)<=50)) &&error<=100);
}

if(carte==3)
{
do
{
balle1x[c]=rand()%600*rapport+decalx;
balle1y[c]=rand()%(450+50)*rapport+decaly;

H1[c]=getpixel(page,balle1x[c],balle1y[c]-1);
H2[c]=getpixel(page,balle1x[c]+32,balle1y[c]-1);
B1[c]=getpixel(page,balle1x[c],balle1y[c]+32+1);
B2[c]=getpixel(page,balle1x[c]+32,balle1y[c]+1+32);
G1[c]=getpixel(page,balle1x[c]-1,balle1y[c]);
G2[c]=getpixel(page,balle1x[c]-1,balle1y[c]+32);
D1[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]);
D2[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]+32);
error=error+1;
}while((H1[c]==violet||H2[c]==violet||B1[c]==violet||B2[c]==violet||
G1[c]==violet||G2[c]==violet||D1[c]==violet||D2[c]==violet||
(fabs(balle1x[c]-dinox)<=50 && fabs(balle1y[c]-dinoy)<=50))
&&error<=100);
}

if(carte==4)
{
do
{
balle1x[c]=rand()%600*rapport+decalx;
balle1y[c]=rand()%(450+50)*rapport+decaly;

H1[c]=getpixel(page,balle1x[c],balle1y[c]-1);
H2[c]=getpixel(page,balle1x[c]+32,balle1y[c]-1);
B1[c]=getpixel(page,balle1x[c],balle1y[c]+32+1);
B2[c]=getpixel(page,balle1x[c]+32,balle1y[c]+1+32);
G1[c]=getpixel(page,balle1x[c]-1,balle1y[c]);
G2[c]=getpixel(page,balle1x[c]-1,balle1y[c]+32);
D1[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]);
D2[c]=getpixel(page,balle1x[c]+1+32,balle1y[c]+32);
error=error+1;
}while((H1[c]==bleu||H2[c]==bleu||B1[c]==bleu||B2[c]==bleu||
G1[c]==bleu||G2[c]==bleu||D1[c]==bleu||D2[c]==bleu||
(fabs(balle1x[c]-dinox)<=50 && fabs(balle1y[c]-dinoy)<=50))
&&error<=100);
}
textout(page,font,"cherche emplacement!",230,240,240);
}
}
error=0;

////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{

if(plomby[1]==251*rapport+decaly)
{
reponse=1;
plomby[1]=428*rapport+decaly;
}

if(plomby[2]==428*rapport+decaly)
{
reponse=0;
plomby[2]=251*rapport+decaly;
}

for(i=1;i<3;i++)
{
if(plombx[i]+20>=dinox && plombx[i]+10<=dinox+32 && plomby[i]+10<=dinoy+32 &&
plomby[i]+22>=dinoy && invincible==0)
{
touch=1;
}
}
}

////////////////////////////////////////////////////////////////////////////////

//analyse de l'image � apposer � l'�cran pour le personnage


if(IMAGE2==1 && seq_anim3==0)
{
if(personnage==1)
{
stretch_sprite(page,dino[10],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[1],dinox,dinoy,tx,ty);
}

if(touch==1)
{
if(personnage==1)
{
stretch_sprite(page,dino[5],dinox,dinoy,tx,ty);
}
if(personnage==2)
{
stretch_sprite(page,smile[5],dinox,dinoy,tx,ty);
}
}
}

if(IMAGE2==2 && seq_anim3==0)


{
if(personnage==1)
{
stretch_sprite(page,dino[1],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[1],dinox,dinoy,tx,ty);
}

if(touch==1)
{
if(personnage==1)
{
stretch_sprite(page,dino[12],dinox,dinoy,tx,ty);
}
if(personnage==2)
{
stretch_sprite(page,smile[5],dinox,dinoy,tx,ty);
}
}
}

if(IMAGE2==3 && seq_anim3==0)


{
if(personnage==1)
{
stretch_sprite(page,dino[9],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[3],dinox,dinoy,tx,ty);
}
if(touch==1)
{
if(personnage==1)
{
stretch_sprite(page,dino[6],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[6],dinox,dinoy,tx,ty);
}
}
}

if(IMAGE2==4 && seq_anim3==0)


{
if(personnage==1)
{
stretch_sprite(page,dino[3],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[3],dinox,dinoy,tx,ty);
}
if(touch==1)
{
if(personnage==1)
{
stretch_sprite(page,dino[11],dinox,dinoy,tx,ty);
}
if(personnage==2)
{
stretch_sprite(page,smile[6],dinox,dinoy,tx,ty);
}
}
}

if(IMAGE2==5 && seq_anim3==0)


{
if(personnage==1)
{
stretch_sprite(page,dino[4],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[4],dinox,dinoy,tx,ty);
}
if(touch==1)
{
if(personnage==1)
{
stretch_sprite(page,dino[7],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[7],dinox,dinoy,tx,ty);
}
}

if(IMAGE2==6 && seq_anim3==0)


{

if(personnage==1)
{
stretch_sprite(page,dino[2],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[2],dinox,dinoy,tx,ty);
}
if(touch==1)
{
if(personnage==1)
{
stretch_sprite(page,dino[8],dinox,dinoy,tx,ty);
}

if(personnage==2)
{
stretch_sprite(page,smile[8],dinox,dinoy,tx,ty);
}
}
}

////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{
if((balle1x[1]==dinox) && (balle1y[1]==dinoy)&&(balle1x[2]==dinox) &&
(balle1y[2]==dinoy))
{
textout(page,font,"f�licitations! vous vous �tes fait dissoudre par
l'ennemi!",100,300,230);
}
}

////////////////////////////////////////////////////////////////////////////////

textprintf(page,font,80,22,makecol(255,255,255),"Il vous reste %d vies",vie);

////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{
if(carte==1)
{
if(k==12)
{
k=1;
}

if(nn==8)
{
nn=6;
}

if(mn>=6 && mn<=17 && dinox>=268*rapport+decalx && dinox<=334*rapport+decalx


&& dinoy+32>423*rapport+decaly)
{
touch=1;
}

if(mn==22)
{
mn=1;
}

if(tt==12)
{
tt=1;
}

if(pasy<0)
{
m=1;
}

if(pasy>0)
{
m=2;
}

if(pasx[1]<0)
{
mm=3;
}

if(pasx[1]>0)
{
mm=4;
}

if(n==4)
{
n=0;
}
}

if(carte==2)
{
if(pasx[1]>=0 && (k==12||k<=6))
{
k=7;
}

if(pasx[1]<=0 && (k==6||k>=7))


{
k=1;
}

if(pasx[2]<0)
{
m=1;
}

if(pasx[2]>0)
{
m=2;
}

if(n==4)
{
n=0;
}
}

if(carte==3)
{
if(k==10)
{
k=1;
}

if(n==4)
{
n=0;
}
}

if(carte==4)
{
if(n==12)
{
n=8;
}

if(pasx[2]<0)
{
m=1;
}

if(pasx[2]>0)
{
m=2;
}

if(pasy<0)
{
mm=1;
}

if(pasy>0)
{
mm=2;
}
}
}
//conditions valables pour toutes les cartes!

if(ch==8)
{
ch=1;
}

if(f==3)
{
f=1;
seq_anim11=0;
}

////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{
if(carte==1)
{
stretch_sprite(page,ennemi[mm],robotx[1],roboty[1],25,25);
stretch_sprite(page,oeil[k],robotx[2],roboty[2],35,35);
stretch_sprite(page,ennemi[m],robotx[3],roboty[3],25,25);
stretch_sprite(page,main[mn],mainx[1],mainy[1],40*rapport,50*rapport);
stretch_sprite(page,main[mn],mainx[2],mainy[2],40*rapport,50*rapport);
stretch_sprite(page,tete[tt],tetex,tetey,32*rapport,32*rapport);

for(i=1;i<3;i++)
{
n=n+1;
stretch_sprite(page,plante[n],plantex[i],plantey[i],32,32);
}

for(i=3;i<=11;i++)
{
stretch_sprite(page,plante[nn],plantex[i],plantey[i],32*rapport,32*rapport);
}

if(reponse==0)
{
plomby[1]=plomby[1]-1;
draw_sprite(page,plomb[1],plombx[1],plomby[1]);
}

if(reponse==1)
{
plomby[2]=plomby[2]+1;
draw_sprite(page,plomb[2],plombx[2],plomby[2]);
}

if(carte==2)
{
stretch_sprite(page,flamme[k],robotx[1],roboty[1],25,25);
draw_sprite(page,charbonardent[m],robotx[2],roboty[2]);
stretch_sprite(page,flamme[k],robotx[3],roboty[3],25,25);

for(i=1;i<3;i++)
{
n=n+1;
draw_sprite(page,plante[n],plantex[i],plantey[i]);
}

if(reponse==0)
{
plomby[1]=plomby[1]-1;
stretch_sprite(page,bellerouge[1],plombx[1],plomby[1],10,15);
}

if(reponse==1)
{
plomby[2]=plomby[2]+1;
stretch_sprite(page,bellerouge[2],plombx[2],plomby[2],10,15);
}

if(carte==3)
{
stretch_sprite(page,robot[k],robotx[1],roboty[1],25,25);
stretch_sprite(page,robot[k],robotx[2],roboty[2],25,25);
stretch_sprite(page,robot[k],robotx[3],roboty[3],25,25);

for(i=1;i<3;i++)
{
n=n+1;
draw_sprite(page,plante[n],plantex[i],plantey[i]);
}

if(reponse==0)
{
plomby[1]=plomby[1]-1;
draw_sprite(page,plomb[3],plombx[1],plomby[1]);
}

if(reponse==1)
{
plomby[2]=plomby[2]+1;
draw_sprite(page,plomb[3],plombx[2],plomby[2]);
}

if(carte==4)
{
stretch_sprite(page,oiseau[m],robotx[1],roboty[1],25+size,25+size);
stretch_sprite(page,oiseau[m],robotx[2],roboty[2],25+size,25+size);
stretch_sprite(page,papillon[mm],robotx[3],roboty[3],25+size,25+size);

for(i=1;i<3;i++)
{
n=n+1;
draw_sprite(page,plante[n],plantex[i],plantey[i]);
}

if(reponse==0)
{
plomby[1]=plomby[1]-1;
stretch_sprite(page,plomb[5],plombx[1],plomby[1],30,30);
}

if(reponse==1)
{
plomby[2]=plomby[2]+1;
stretch_sprite(page,plomb[6],plombx[2],plomby[2],30,30);
}
}

////////////////////////////////////////////////////////////////////////////////

for(i=1;i<(nb+1);i++)
{
if(seq_anim[i]==1)
{

//ralentissement explosion
//rest(5);

if(carte==1)
{
stretch_sprite(page,arme[j[i]],armex[i],armey[i],32,32);
if(j[i]==9)
{
j[i]=1;
//la variable est libre: on peut l'�craser!
armex[i]=0;
armey[i]=0;
seq_anim[i]=0;
}
}

if(carte==2)
{
stretch_sprite(page,bouledefeu[j[i]],armex[i],armey[i],32,32);

if(j[i]==9)
{
j[i]=1;
//la variable est libre: on peut l'�craser!
armex[i]=0;
armey[i]=0;
seq_anim[i]=0;
}

if(carte==3)
{
draw_sprite(page,bomb[j[i]],armex[i],armey[i]);

if(j[i]==7)
{
j[i]=1;
//la variable est libre: on peut l'�craser!
armex[i]=0;
armey[i]=0;
seq_anim[i]=0;
}

if(carte==4)
{
stretch_sprite(page,bombe[j[i]],armex[i],armey[i],25,25);

if(j[i]==12)
{
j[i]=1;
//la variable est libre: on peut l'�craser!
armex[i]=0;
armey[i]=0;
seq_anim[i]=0;
}
}
//condition pour que le compteur d'images avance: s�quence=on;
j[i]=j[i]+1;

}
}
////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{

for(i=1;i<20;i++)
{
if(seq_anim2[i]==1)
{
if(carte==1||carte==2||carte==3)
{
if(r<=10)
{
stretch_sprite(page,rocher[r],rocherx[i]+size*rapport,rochery[i]+size*rapport,40*r
apport,34*rapport);
}
if(r>10)
{
stretch_sprite(page,rocher[r],rocherx[i]+size*rapport,rochery[i]+size*rapport,80*r
apport,80*rapport);
}
}

if(carte==4)
{
if(r<=10)
{
stretch_sprite(page,mur[10+r],rocherx[i]+size*rapport,rochery[i]+size*rapport,38*r
apport,38*rapport);
}
if(r>10)
{
stretch_sprite(page,rocher[r],rocherx[i],rochery[i],80*rapport,80*rapport);
}
}

if(r<=3)
{
stretch_sprite(page,fumee[f],rocherx[i]+20,rochery[i]+20,32,32);
}

diamantx[i]=rocherx[i];
diamanty[i]=rochery[i];

if(r==18)
{
r=1;
seq_anim2[i]=0;
rocherx[i]=0;
rochery[i]=0;
}
}
if(seq_anim2[i]==0 && rocherx[i]!=0 && rochery[i]!=0)
{
if(carte==1 || carte==2 || carte==3)
{
stretch_sprite(page,rocher[1],rocherx[i],rochery[i],40*rapport,34*rapport);
}
if(carte==4)
{
stretch_sprite(page,mur[11],rocherx[i],rochery[i],38*rapport,38*rapport);
}

if(dinox+32>=diamantx[i] && dinox<=diamantx[i]+32*rapport &&


dinoy<=diamanty[i]+32*rapport &&
dinoy+32>=diamanty[i] && diamantx[i]!=0 && rocherx[i]==0)
{
diamantx[i]=0;
diamanty[i]=0;
artefact=artefact-1;
argent=argent+1000;
}

if(seq_anim2[i]==0 && rocherx[i]==0 && diamantx[i]!=0 &&


diamanty[i]!=0)
{
if(carte==1)
{
stretch_sprite(page,cristal[1],diamantx[i],diamanty[i],32*rapport,22*rapport);
}
if(carte==2)
{
stretch_sprite(page,cristal[2],diamantx[i],diamanty[i],42*rapport,42*rapport);
}
if(carte==3)
{
stretch_sprite(page,cristal[3],diamantx[i],diamanty[i],25*rapport,22*rapport);
}
if(carte==4)
{
stretch_sprite(page,cristal[4],diamantx[i],diamanty[i],22*rapport,22*rapport);
}
}

}
size=-size;
}

////////////////////////////////////////////////////////////////////////////////

if(seq_anim3==1)
{
invincible=1;

if(R>0)
{
if(dinox<=-R)
{
R=R-10;
tx=tx-3.5;
ty=ty-3.5;
dinox=-R;
}
if(dinox<=-R)
{
ppx=20;
}
if(dinox>=R)
{
ppx=-20;
}

dinox=dinox+ppx;

if(ppx==20)
{
dinoy=sqrt(R*R-dinox*dinox);
}
if(ppx==-20)
{
dinoy=-sqrt(R*R-dinox*dinox);
}
if(personnage==1)
{
stretch_sprite(page,dino[2],dinox+320*rapport,dinoy+230*rapport,tx,ty);
}
if(personnage==2)
{
stretch_sprite(page,smile[2],dinox+320*rapport,dinoy+230*rapport,tx,ty);
}
}

else if(R<=0)
{
if(monde==0)
{
dinox=40*rapport;
dinoy=60*rapport;
}
if(monde==2)
{
dinox=63*rapport;
dinoy=113*rapport;
}
explosion=1;
seq_anim3=0;
}
}

////////////////////////////////////////////////////////////////////////////////

if(explosion==1)
{
draw_sprite(page,bomb[b],dinox+240*rapport,dinoy+160*rapport);

if(b==7)
{
tps=0;
explosion=0;
b=1;
tx=32;
ty=32;
}
b=b+1;
}

////////////////////////////////////////////////////////////////////////////////

if(monde==0)
{

if(artefact==1)
{
if(case_terrex[1]==1)
{
stretch_sprite(page,case_terre[1],502,283,36,36);
if(armex[nb]>502 && armex[nb]<539 && armey[nb]<319 && armey[nb]>283)
{
case_terrex[1]=0;
}
}

if(case_terrex[1]==0 && parcheminx==1)


{
stretch_sprite(page,parchemin,502,283,25,25);
if(fabs(dinox-502)<=5 && fabs(dinoy-282)<=5)
{
parcheminx=0;
tps=0;
}
}

if(parcheminx==0 && zoom==1)


{
stretch_sprite(page,parchemin,100,50,300,300);
}

if(zoom==0 && portail==1)


{
stretch_sprite(page,ennemi[1],21,400,20,20);
if(dinox>21 && dinox<41 && dinoy<420 && dinoy>390)
{
seq_anim4=1;
portail=0;
}
}
}

//if(monde==1)
//{
//stretch_sprite(page,missile,548,84,70,10);//missile
//stretch_sprite(page,bonus[3],20,452,70,10);//invincible
//}

////////////////////////////////////////////////////////////////////////////////
if(seq_anim4==1)
{
tps=0;
invincible=1;
dinoy=dinoy+py;
py=-py;
tx=tx-pas;
ty=ty-pas;

if(tx>=32 && ty>=32 && pas<0)


{
pas=0.1;
seq_anim4=0;
if(monde==1)
{
tp=0;
}
}

if(tx<=0 && ty<=0)


{
pas=-pas;
if(monde==0)
{
if(rapport>1)
{
decalx=-350;
decaly=-50;
}
dinox=571;
dinoy=74;
}
if(artefact==19||artefact==0)
{
monde=monde+1;
if(monde==1)
{
dinox=582;
dinoy=100;
}
if(monde==2)
{
case_terrex[1]=1;
dinox=100;
dinoy=100;
}
}
}
}

////////////////////////////////////////////////////////////////////////////////

if(seq_anim5==1)
{
if(dinohg==gris || dinohd==gris)
{
py=2;
}
dinoy=dinoy+py;
py=py+pas;

if(pas==-0.1)
{
if(py<=0)
{
seq_anim5=0;
}
}

if(dinobg==gris || dinobd==gris)
{
seq_anim5=0;
}

if(keypressed)
{
if(key[KEY_UP] && py>=-5 && py<=0)
{
py=py-0.05;
}
else if(key[KEY_DOWN] && py<=0)
{
py=py+0.05;
}
}
}

////////////////////////////////////////////////////////////////////////////////

if(seq_anim6==1)
{
pas=0.03;

if(dinodh==gris || dinodb==gris)
{
px=-2;
}

dinox=dinox+px;
px=px-pas;

if(px<=0)
{
seq_anim6=0;
}

if(keypressed)
{
if(key[KEY_LEFT] && px>0)
{
px=px-0.02;
}

if(key[KEY_RIGHT] && px<=5)


{
px=px+0.02;
}
}

////////////////////////////////////////////////////////////////////////////////

for(i=1;i<=8;i++)
{
if(seq_anim7[i]==1)
{
stretch_sprite(page,nichon[s[i]],seinx[i],seiny[i],35*rapport,35*rapport);

if(pas==0.03)
{
if(s[i]==32)
{
s[i]=17;
seq_anim7[i]=0;
}
}

else if(pas==0.1)
{
if(s[i]==16)
{
s[i]=1;
seq_anim7[i]=0;
}
}

else if(pas==-0.1)
{
if(s[i]==64)
{
s[i]=49;
seq_anim7[i]=0;
}
}

s[i]=s[i]+1;

}
}
////////////////////////////////////////////////////////////////////////////////

if(seq_anim8==1)
{
stretch_sprite(page,chargeur[ch],chargeurx,chargeury,32,32);
}

////////////////////////////////////////////////////////////////////////////////

if(seq_anim10==1)
{
stretch_sprite(page,tetedemort,200,100,200,200);
}
////////////////////////////////////////////////////////////////////////////////

if(seq_anim11==1)
{
stretch_sprite(page,fumee[f],dinox+30,dinoy-20,30,30);
}

////////////////////////////////////////////////////////////////////////////////

if(monde!=1)
{
//splatt!
for(c=1;c<=nb_ennemis;c++)
{
if(seq_anim13[c]==1)
{
sp[c]=sp[c]+1;
stretch_sprite(page,splatt[sp[c]],splattx[c],splatty[c],32,32);

if(sp[c]==12)
{
sp[c]=0;
seq_anim13[c]=0;
}
}
}
}

////////////////////////////////////////////////////////////////////////////////

for(i=1;i<=10;i++)
{
if(seq_anim14[i]==1)
{
stretch_sprite(page,case_terre[ct[i]],case_terrex[i],case_terrey[i],42*rapport,4
2*rapport);

if(ct[i]==5)
{
ct[i]=1;
seq_anim14[i]=0;
diamantx[i]=case_terrex[i];
diamanty[i]=case_terrey[i];
case_terrex[i]=0;
}

if(ct[i]==11)
{
ct[i]=6;
seq_anim14[i]=0;
balle1x[nb_ennemis]=case_terrex[i];
balle1y[nb_ennemis]=case_terrey[i];
case_terrex[i]=0;
nb_ennemis=nb_ennemis+1;
}

}
}
////////////////////////////////////////////////////////////////////////////////
for(i=8;i<=10;i++)
{
if(seq_anim15[i]==1)
{
if(g[i]==12)
{
g[i]=9;
}
if(g[i]==20)
{
g[i]=17;
}
}
}
////////////////////////////////////////////////////////////////////////////////

if(monde==1)
{
for(i=1;i<101;i++)
{
if(starx[i]==0 && stary[i]==0)
{
stretch_sprite(page,terrain[5],decalx,decaly,640*rapport,480*rapport);
do{
starx[i]=rand()%600;
stary[i]=rand()%400;
S1=getpixel(page,starx[i],stary[i]-1);
S2=getpixel(page,starx[i]+20+size,stary[i]-1);
S3=getpixel(page,starx[i],stary[i]+20+size+1);
S4=getpixel(page,starx[i]+20+size,stary[i]+1+20+size);
S5=getpixel(page,starx[i]-1,stary[i]);
S6=getpixel(page,starx[i]-1,stary[i]+20+size);
S7=getpixel(page,starx[i]+1+20+size,stary[i]);
S8=getpixel(page,starx[i]+1+20+size,stary[i]+20+size);
} while(S1!=noir||S2!=noir||S3!=noir||S4!=noir||
S5!=noir||S6!=noir||S7!=noir||S8!=noir);
}
if(dinox+32>=starx[i] && dinox<=starx[i]+20+size && dinoy<=stary[i]+20+size &&
dinoy+32>=stary[i] && starx[i]!=1 && stary[i]!=1)
{
starx[i]=1;
stary[i]=1;
artefact=artefact+1;
argent=argent+100;
}
if(starx[i]!=1 && stary[i]!=1)
{
stretch_sprite(page,star,starx[i],stary[i],20+size,20+size);
}
}
size=-size;
}

////////////////////////////////////////////////////////////////////////////////

if(monde==1 && seq_anim4==0)


{
for(i=1;i<=7;i++)
{
if(fabs(dinox-seinx[i])<=10*rapport)
{
seq_anim5=1;
if(fabs(dinoy-seiny[i])<=10*rapport)
{
seq_anim7[i]=1;

if(py>0)
{
py=-5;
}
}
}

if(seq_anim7[i]==0)
{
stretch_sprite(page,nichon[1],seinx[i],seiny[i],35*rapport,35*rapport);
}
}

if(dinobg==gris || dinobd==gris)
{
seq_anim5=0;
}

////////////////////////////////////////////////////////////////////////////////

if(monde==2)
{
if(decalx==0 && decaly==0)
{
seinx[1]=21*rapport;
seiny[1]=111*rapport;
seinx[2]=21*rapport;
seiny[2]=200*rapport;
seinx[3]=21*rapport;
seiny[3]=287*rapport;
seinx[4]=21*rapport;
seiny[4]=381*rapport;
seinx[5]=408*rapport;
seiny[5]=288*rapport;
seinx[6]=493*rapport;
seiny[6]=383*rapport;
seinx[7]=579*rapport;
seiny[7]=425*rapport;
seinx[8]=190*rapport;
seiny[8]=67*rapport;
}

if(case_terrex[1]!=0 && decalx==0 && decaly==0)


{
case_terrex[1]=188*rapport;
case_terrey[1]=108*rapport;
case_terrex[2]=229*rapport;
case_terrey[2]=194*rapport;
case_terrex[3]=188*rapport;
case_terrey[3]=236*rapport;
case_terrex[4]=188*rapport;
case_terrey[4]=280*rapport;
case_terrex[5]=188*rapport;
case_terrey[5]=325*rapport;
case_terrex[6]=488*rapport;
case_terrey[6]=193*rapport;
case_terrex[7]=573*rapport;
case_terrey[7]=233*rapport;
case_terrex[8]=229*rapport;
case_terrey[8]=108*rapport;
case_terrex[9]=228*rapport;
case_terrey[9]=281*rapport;
case_terrex[10]=316*rapport;
case_terrey[10]=193*rapport;
}

if(bonus[0]!=2)
{
bonusx[1]=188*rapport;
bonusy[1]=324*rapport;
}

//d'autres mondes vous seront accessibles par la suite � l'aide des nombreux
//portails diss�min�s sur la carte!

for(i=1;i<=4;i++)
{
if(seq_anim7[i]==0)
{
stretch_sprite(page,nichon[17],seinx[i],seiny[i],35*rapport,35*rapport);
}

if(fabs(dinox-seinx[i])<=10*rapport && fabs(dinoy-seiny[i])<=10*rapport)


{
seq_anim7[i]=1;
seq_anim6=1;
s[i]=17;
px=5;
}
}

for(i=5;i<=7;i++)
{
if(seq_anim7[i]==0)
{
stretch_sprite(page,nichon[1],seinx[i],seiny[i],35*rapport,35*rapport);
}

if(fabs(dinox-seinx[i])<=10*rapport && fabs(dinoy-seiny[i])<=10*rapport)


{
pas=0.1;
seq_anim7[i]=1;
seq_anim5=1;
s[i]=1;
if(py>=0)
{
py=-5;
}
}
}

for(i=8;i<=8;i++)
{
if(seq_anim7[i]==0)
{
stretch_sprite(page,nichon[49],seinx[i],seiny[i],35*rapport,35*rapport);
}

if(fabs(dinox-seinx[i])<=10*rapport && fabs(dinoy-seiny[i])<=10*rapport)


{
pas=-0.1;
seq_anim7[i]=1;
seq_anim5=1;
s[i]=49;
py=8;
}
}

if(bonusx[1]!=0)
{
stretch_sprite(page,plomb[4],bonusx[1]*rapport,bonusy[1]*rapport,32,32);
}

for(i=1;i<=7;i++)
{
if(seq_anim14[i]==0 && case_terrex[i]!=0)
{
stretch_sprite(page,case_terre[1],case_terrex[i],case_terrey[i],42*rapport,42*r
apport);
}
if(fabs(dinox-case_terrex[i])<=20*rapport && fabs(dinoy-
case_terrey[i])<=20*rapport && (px>2||py>2)
&& case_terrex[i]!=0)
{
ct[i]=1;
seq_anim14[i]=1;
}

if(case_terrex[i]==0 && diamantx[i]!=0)


{
stretch_sprite(page,cristal[5],diamantx[i],diamanty[i],32,32);
}

if(dinox+32>=diamantx[i] && dinox<=diamantx[i]+32 && dinoy<=diamanty[i]+32 &&


dinoy+32>=diamanty[i] && diamantx[i]!=0 && case_terrex[i]==0)
{
diamantx[i]=0;
diamanty[i]=0;
artefact=artefact-1;
argent=argent+1000;
}
}
for(i=8;i<=10;i++)
{
if(seq_anim14[i]==0 && case_terrex[i]!=0)
{
stretch_sprite(page,case_terre[6],case_terrex[i],case_terrey[i],42*rapport,42*r
apport);
}
if(fabs(dinox-case_terrex[i])<=20*rapport && fabs(dinoy-
case_terrey[i])<=20*rapport && (px>2||py>2)
&& case_terrex[i]!=0)
{
ct[i]=6;
g[i]=1;
seq_anim14[i]=1;
seq_anim15[i]=1;
}
}

if(fabs(dinox-bonusx[1])<=10 && fabs(dinoy-bonusy[1])<=10 && case_terrex[5]==0)


{
bonusx[1]=0;
bonus[0]=2;
}

}//accolade fin monde

////////////////////////////////////////////////////////////////////////////////

if(monde==0 || monde==2)
{
if(artefact==0 && seq_anim4==0)
{
textout(page,font,"F�licitations! Vous avez gagn�!",163,5,140);
textout(page,font,"appuyez sur espace pour passer au niveau
suivant!",163,300,140);
blit(page,screen,0,0,0,0,640,480);
if(monde!=0)
{
artefact=19;
}
seq_anim4=1;
while(!key[KEY_SPACE])
{
}
}

textprintf(page,font,437,22,makecol(255,255,255),"%d artefacts
restants",artefact);

if(monde==1 && seq_anim4==0)


{

for(i=1;i<=9;i++)
{
if(tp>=100*i)
{
stretch_sprite(page,number[10-i],300,0,50,50);
}
}

textprintf(page,font,437,22,makecol(255,255,255),"%d etoiles",artefact);

if(tp==1000)
{
stretch_sprite(page,number[0],300,0,50,50);
artefact=19;
seq_anim4=1;
seq_anim5=0;
textout(page,font,"appuyez sur espace pour passer au niveau
suivant!",163,300,140);
blit(page,screen,0,0,0,0,640,480);
while(!key[KEY_SPACE])
{
}
}

if(munition%100==0)
{
textprintf(page,font,437,42,makecol(255,255,255),"%d pourcent de tirs
r�ussis",tir);
}

textprintf(page,font,237,52,makecol(255,255,255),"%d munitions
restantes",munition);
textprintf(page,font,137,52,makecol(255,255,255),"%d $",argent);
textout(page,font,"F3:boutique",80,5,140);

while(key[KEY_F3])
{
textout(screen,font,"1: acheter 1 vie pour 10.000 dollars (touche F3
appuy�e)",50,100,190);
textout(screen,font,"2: acheter 1 tube de colle pour 5.000 dollars (touche F3
appuy�e)",50,120,190);
textout(screen,font,"3: acheter 1 timefix pour 10.000 dollars (touche F3
appuy�e)",50,140,190);
if(key[KEY_1] && argent>=10000)
{
vie=vie+1;
argent=argent-10000;
stretch_sprite(screen,life,100,100,200,200);
textprintf(screen,font,250,200,makecol(200,200,50),"%d vies!",vie);
while(key[KEY_1])
{
}
}
else if(key[KEY_2] && argent>=5000)
{
argent=argent-5000;
stretch_sprite(screen,colle,100,150,200,200);
textout(screen,font,"�a colle!",350,250,250);
seq_anim9=1;
tp=0;
while(key[KEY_2])
{
}
}
else if(key[KEY_3] && argent>=10000)
{
argent=argent-10000;
stretch_sprite(screen,stop,100,150,200,250);
textout(screen,font,"temps suspendu!",350,250,250);
seq_anim12=1;
tp=0;
MEMO[1]=pasx[1];
MEMO[2]=pasx[2];
MEMO[3]=pasy;
if(carte==3)
{
MEMO[4]=deltax[1];
MEMO[5]=deltay[1];
MEMO[6]=deltax[2];
MEMO[7]=deltay[2];
MEMO[8]=deltax[3];
MEMO[9]=deltay[3];
}

while(key[KEY_3])
{
}
}
}

////////////////////////////////////////////////////////////////////////////////

draw_sprite(screen,page,0,0);
stretch_sprite(screen,page,0,0,80,60);//ecran de contr�le

////////////////////////////////////////////////////////////////////////////////

tetex=tetex-decalx;
tetey=tetey-decaly;
bonusx[1]=bonusx[1]-decalx;
bonusy[1]=bonusy[1]-decaly;
chargeurx=chargeurx-decalx;
chargeury=chargeury-decaly;

for(i=1;i<=nb_ennemis;i++)
{
balle1x[i]=balle1x[i]-decalx;
balle1y[i]=balle1y[i]-decaly;
splattx[i]=splattx[i]-decalx;
splatty[i]=splatty[i]-decaly;
}

for(i=1;i<=2;i++)
{
plombx[i]=plombx[i]-decalx;
plomby[i]=plomby[i]-decaly;
mainx[i]=mainx[i]-decalx;
mainy[i]=mainy[i]-decaly;
}

for(i=1;i<=3;i++)
{
robotx[i]=robotx[i]-decalx;
roboty[i]=roboty[i]-decaly;
asteroidx[i]=asteroidx[i]-decalx;
asteroidy[i]=asteroidy[i]-decaly;
}

if(monde==1)
{
for(i=1;i<=7;i++)
{
seinx[i]=seinx[i]-decalx;
seiny[i]=seiny[i]-decaly;
}
}

if(monde==2)
{
for(i=1;i<=8;i++)
{
seinx[i]=seinx[i]-decalx;
seiny[i]=seiny[i]-decaly;
}
}

for(i=1;i<=10;i++)
{
if(case_terrex[i]!=0)
{
case_terrex[i]=case_terrex[i]-decalx;
case_terrey[i]=case_terrey[i]-decaly;
}
}

for(i=1;i<=11;i++)
{
plantex[i]=plantex[i]-decalx;
plantey[i]=plantey[i]-decaly;
}

for(i=1;i<20;i++)
{
if(rocherx[i]!=0 && rochery[i]!=0)
{
rocherx[i]=rocherx[i]-decalx;
rochery[i]=rochery[i]-decaly;
}
if(diamantx[i]!=0)
{
diamantx[i]=diamantx[i]-decalx;
diamanty[i]=diamanty[i]-decaly;
}
}
if (fabs(dinox-(580*rapport+decalx))<=px)
{
temps=0;
seq_anim16=1;
}

////////////////////////////////////////////////////////////////////////////////

if(touch==1)
{
seq_anim10=1;
}

if(touch==1 && seq_anim3==0 && tps==100)


{
touch=0;
decalx=0;
decaly=0;
if(vie==0)
{
textout(page,font,"le sort en est jet�. Vous d�cidez de partir en
exil!",163,5,140);
textout(page,font,"VOUS AVEZ PERDU!!",259,24,200);
stretch_sprite(page,over,220,240,200,50);
blit(page,screen,0,0,0,0,640,480);
while(!key[KEY_ESC])
{
}
}
R=100;
dinox=-100;
seq_anim3=1;
vie=vie-1;
}

////////////////////////////////////////////////////////////////////////////////

if(t==10)
{
t=0;
if(monde==0)
{
k=k+1;
mn=mn+1;
f=f+1;
tt=tt+1;
nn=nn+1;
ch=ch+1;
for(i=1;i<20;i++)
{
if(seq_anim2[i]==1 && r<10)
{
r=r+1;
}
}
}

if(monde==2)
{
for(i=8;i<=10;i++)
{
if(seq_anim15[i]==1)
{
g[i]=g[i]+1;
}
}
for(i=1;i<=10;i++)
{
if(seq_anim14[i]==1)
{
ct[i]=ct[i]+1;
}
}
f=f+1;
}
} //fin t

if(t==2)
{
if(monde==0)
{
for(i=1;i<20;i++)
{
if(seq_anim2[i]==1 && r>=10)
{
t=0;
r=r+1;
}
}
}
}

if(tps==100)
{
tps=0;
invincible=0;
if(monde==0)
{
if(artefact==1 && parcheminx==0)
{
zoom=0;
}
}
}

if(temp==10)
{
temp=0;
seq_anim10=0;
}

if(tp==1000)
{
tp=0;
seq_anim9=0;
if(seq_anim12==1)
{
pasx[1]=MEMO[1];
pasx[2]=MEMO[2];
pasy=MEMO[3];
if(carte==3)
{
deltax[1]=MEMO[4];
deltay[1]=MEMO[5];
deltax[2]=MEMO[6];
deltay[2]=MEMO[7];
deltax[3]=MEMO[8];
deltay[3]=MEMO[9];
}
seq_anim12=0;
}
}

if(temps==300)
{
temps=0;
seq_anim16=0;
}

////////////////////////////////////////////////////////////////////////////////

t=t+1;
tp=tp+1;
tps=tps+1;
temp=temp+1;
temps=temps+1;

////////////////////////////////////////////////////////////////////////////////

if(key[KEY_DEL])
{
if(key[KEY_RIGHT])
{
dinox=dinox+0.1;
}

if(key[KEY_LEFT])
{
dinox=dinox-0.1;
}
}

////////////////////////////////////////////////////////////////////////////////

//menu PAUSE
if(keypressed)
{
if(key[KEY_F1])
{
//pause coquine!!!
page=load_bitmap("zen.bmp",NULL);
//page=load_bitmap("zen2.bmp",NULL);
textout(page,font,"vous faites une pause!",230,240,240);
textout(page,font,"(appuyez sur F2 pour reprendre le jeu)",0,0,100);
while(!key[KEY_F2])
{
stretch_sprite(screen,page,-300,-180,1024,768);
//blit(page,screen,0,0,0,0,640,480);
}
}
}
/*int detect_digi_driver(int driver_id);
int detect_midi_driver(int driver_id);
void reserve_voices(int digi_voices, int midi_voices);
void set_volume_per_voice(int scale);
void get_volume(int *digi_volume, int *midi_volume);
void get_hardware_volume(int *digi_volume, int *midi_volume);
int install_sound(int digi, int midi, const char *cfg_path);
void set_volume(int digi_volume, int midi_volume);
void set_hardware_volume(int digi_volume, int midi_volume);*/

}
}
END_OF_MAIN();

/*
//NOMBRE DE BUGS//

//A CORRIGER!!!

1-->balles perdues sont au repos pdt un certain temps


2-->balles traversent rochers
3-->compteur tir reussi pas mis au point

//IDEES//

1-->�laboration d'un missile guid� sol-sol


2-->ajout de nouveaux bonus

*/

Das könnte Ihnen auch gefallen