Mr propre
This commit is contained in:
parent
bf66962b0e
commit
f19f8172ca
|
@ -26,8 +26,13 @@
|
|||
|
||||
int Menu(void);
|
||||
int Jeu(void);
|
||||
void init_obstacle(void);
|
||||
void new_frame(void);
|
||||
void generate_obstacle(char ID_corridor);
|
||||
|
||||
void mort(void);
|
||||
void garage(void);
|
||||
|
||||
int rand(int min, int max, int seed);
|
||||
int recur(int seed);
|
||||
|
||||
#endif
|
||||
|
|
245
src/voiture.c
245
src/voiture.c
|
@ -7,13 +7,12 @@
|
|||
#include "clock.h"
|
||||
#include "timer.h"
|
||||
|
||||
#define mod(x,y) (x-y*(int)(x/y))
|
||||
|
||||
Obstacles obstacle[4]; // struture Obstacle & attributs
|
||||
Voiture voiture; // structure Voiture & caracteristiques
|
||||
|
||||
void init()
|
||||
{
|
||||
|
||||
voiture.corridor = 2;
|
||||
voiture.money = 0;
|
||||
voiture.essence = 100;
|
||||
|
@ -22,65 +21,51 @@ voiture.life = 1;
|
|||
voiture.speed = 50;
|
||||
voiture.decal_x = 15;
|
||||
compteur = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int rand(int min, int max, int seed)
|
||||
for(int i = 0; i<4; i++)
|
||||
{
|
||||
return ((seed%33)*(seed%3)+3)%(max-min) + min;
|
||||
obstacle[i].coordx = -20;
|
||||
obstacle[i].num_obst = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void update_essence()
|
||||
{
|
||||
voiture.essence -= 2;
|
||||
voiture.essence -= 1;
|
||||
}
|
||||
|
||||
void new_frame()
|
||||
int main(void)
|
||||
{
|
||||
extern Image img_formel1;
|
||||
extern Image img_obstacle;
|
||||
short menu=0;
|
||||
|
||||
int i,j;
|
||||
extern Image img_menu;
|
||||
|
||||
dclear();
|
||||
|
||||
dimage(voiture.decal_x, 11*voiture.corridor, &img_formel1);
|
||||
dprint(1, 1, "%d", compteur);
|
||||
//dprint(57, 1, "e : %d", voiture.essence);
|
||||
dprint(1, 57, "%d", rand(0,101,compteur));
|
||||
dline(25, 58, 25+(voiture.essence/5), 58, Color_Black);
|
||||
//dimage_part(1, 1, &img_obstacle, 10*7, 0, 10, 10);
|
||||
|
||||
|
||||
if (voiture.essence == 0)
|
||||
{
|
||||
voiture.life = 0;
|
||||
}
|
||||
|
||||
if (voiture.life == 0)
|
||||
while(1)
|
||||
{
|
||||
dclear();
|
||||
dtext(10,10,"Vous etes mort");
|
||||
dtext(10,20,"Appuyer sur une touche");
|
||||
dupdate();
|
||||
return;
|
||||
}
|
||||
|
||||
// dessin des lignes
|
||||
for(i=1;i<4;i++)
|
||||
{
|
||||
for(j=compteur%2;j<128;j+=4)
|
||||
dimage(0, 0, &img_menu);
|
||||
dreverse_area(62+16*menu,23+21*menu,108+16*menu,39+21*menu);
|
||||
|
||||
dupdate();
|
||||
|
||||
key=getkey();
|
||||
|
||||
switch(key)
|
||||
{
|
||||
dline(2*j, i*11+10, 2*j+3, i*11+10, Color_Black);
|
||||
case KEY_UP : case KEY_DOWN : menu=!menu; break;
|
||||
case KEY_EXE :
|
||||
|
||||
switch(menu)
|
||||
{
|
||||
case 0 : Jeu(); break;
|
||||
case 1 : /*garage();*/ break;
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY_EXIT : return 1;
|
||||
}
|
||||
}
|
||||
|
||||
dline(1, 10, 128, 10, Color_Black);
|
||||
dline(1, 54, 128, 54, Color_Black);
|
||||
|
||||
dupdate();
|
||||
compteur++;
|
||||
}
|
||||
|
||||
int Jeu()
|
||||
|
@ -109,85 +94,101 @@ while(1)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void)
|
||||
void new_frame()
|
||||
{
|
||||
short menu=0;
|
||||
extern Image img_formel1;
|
||||
extern Image img_obstacle;
|
||||
|
||||
extern Image img_menu;
|
||||
int i,j;
|
||||
|
||||
while(1)
|
||||
dclear();
|
||||
|
||||
dimage(voiture.decal_x, 11*voiture.corridor, &img_formel1);
|
||||
dprint(1, 1, "%d", compteur);
|
||||
//dprint(57, 1, "e : %d", voiture.essence);
|
||||
dprint(1, 57, "%d", rand(0,101,compteur));
|
||||
|
||||
//Jauge d'essence
|
||||
dline(25+voiture.essence/5, 58, 45, 58, Color_Black);
|
||||
dreverse_area(24, 57, 46, 59);
|
||||
|
||||
//generation de chacun des obstacles
|
||||
for(i=0; i<4; i++)
|
||||
{
|
||||
if(obstacle[i].coordx < -10)
|
||||
{
|
||||
generate_obstacle(i);
|
||||
}
|
||||
|
||||
dimage_part(obstacle[i].coordx, 11*i+11, &img_obstacle, 10*obstacle[i].num_obst, 0, 10, 10);
|
||||
obstacle[i].coordx--;
|
||||
}
|
||||
|
||||
if (voiture.essence == 0)
|
||||
{
|
||||
voiture.life = 0;
|
||||
}
|
||||
|
||||
if (voiture.life == 0)
|
||||
{
|
||||
dclear();
|
||||
|
||||
dimage(0, 0, &img_menu);
|
||||
|
||||
dreverse_area(62+16*menu,23+21*menu,108+16*menu,39+21*menu);
|
||||
|
||||
dtext(10,10,"Vous etes mort");
|
||||
dtext(1,20,"Appuyez sur une touche");
|
||||
dupdate();
|
||||
return;
|
||||
}
|
||||
|
||||
key=getkey();
|
||||
|
||||
switch(key)
|
||||
// dessin des lignes
|
||||
for(i=1;i<4;i++)
|
||||
{
|
||||
for(j=compteur%2;j<128;j+=4)
|
||||
{
|
||||
case KEY_UP : case KEY_DOWN : menu=!menu; break;
|
||||
case KEY_EXE :
|
||||
|
||||
switch(menu)
|
||||
{
|
||||
case 0 : Jeu(); break;
|
||||
case 1 : /*garage();*/ break;
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY_EXIT : return 1;
|
||||
dline(2*j, i*11+10, 2*j+3, i*11+10, Color_Black);
|
||||
}
|
||||
}
|
||||
|
||||
dline(1, 10, 128, 10, Color_Black);
|
||||
dline(1, 54, 128, 54, Color_Black);
|
||||
|
||||
dupdate();
|
||||
compteur++;
|
||||
|
||||
}
|
||||
|
||||
/*void garage(void)
|
||||
void mort()
|
||||
{
|
||||
unsigned char prix[5]={20,50,90,150,300};
|
||||
unsigned char choice[2]={0,0};
|
||||
int i;
|
||||
char buffer[50];
|
||||
char choix=0;
|
||||
int j,k;
|
||||
|
||||
while(1)
|
||||
{
|
||||
Bdisp_AllClr_DDVRAM();
|
||||
|
||||
ML_bmp_or(IMG_GARAGE, 0, 0, 128, 64);
|
||||
|
||||
|
||||
for(i=0;i<choice[0];i++)
|
||||
{
|
||||
ML_rectangle(58+9*i,33,62+9*i,37,1,1,2);
|
||||
ML_display_vram();
|
||||
dclear();
|
||||
dtext(10,10,"Vous etes mort");
|
||||
dupdate();
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0;i<choice[1];i++)
|
||||
void generate_obstacle(char ID_corridor)
|
||||
{
|
||||
ML_rectangle(58+9*i,43,62+9*i,47,1,1,2);
|
||||
ML_display_vram();
|
||||
unsigned char alea = rand(0, 100 ,compteur);
|
||||
unsigned char proba[9]={30,40,5,5,3,3,9,3,2};
|
||||
unsigned char i, sum;
|
||||
|
||||
dprint(15, 57, "%c", alea);
|
||||
sum = 0;
|
||||
i = 0;
|
||||
|
||||
while(sum<=alea)
|
||||
{
|
||||
sum+=proba[i];
|
||||
i++;
|
||||
}
|
||||
|
||||
obstacle[ID_corridor].num_obst = i;
|
||||
obstacle[ID_corridor].coordx = 128 + rand(0, 20 ,compteur);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
PrintMini(5,32+10*choix,"->",0);
|
||||
|
||||
sprintf(buffer,"argent %d prix %d" , 500, 500);
|
||||
PrintMini(11,17,buffer,0);
|
||||
|
||||
GetKey(&key);
|
||||
|
||||
switch(key)
|
||||
int rand(int min, int max, int seed)
|
||||
{
|
||||
case KEY_CTRL_UP : case KEY_CTRL_DOWN : choix=(choix== 1 ? 0 : 1); break;
|
||||
case KEY_CTRL_EXE : choice[choix]++; break;
|
||||
case KEY_CTRL_EXIT : return ;
|
||||
return ((++seed%2)*(--seed%50)+3)%(max-min) + min;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
/*int Jeu()
|
||||
{
|
||||
|
@ -301,41 +302,3 @@ score=(i%4==0 ? score+2: score);
|
|||
}
|
||||
return 1;
|
||||
}*/
|
||||
|
||||
void mort()
|
||||
{
|
||||
|
||||
dclear();
|
||||
|
||||
while(key!=KEY_NONE)
|
||||
{
|
||||
dtext(10,10,"Vous etes mort");
|
||||
dupdate();
|
||||
key = getkey();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void init_obstacle()
|
||||
{
|
||||
int i=0,j=0;
|
||||
char proba[10]={0,30,70,75,80,83,86,95,98,100};
|
||||
|
||||
while(j<9)
|
||||
{
|
||||
for(i=proba[j];i<proba[j+1];i++)
|
||||
{
|
||||
obstacles[i]=j;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
|
||||
//srand(RTC_getTicks());
|
||||
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
obstacle[i].num_obst=obstacles[rand(0,100,compteur)];
|
||||
obstacle[i].coordx=128+rand(30,128,compteur);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue