tst
This commit is contained in:
parent
5e4e4adf66
commit
02aabf7531
|
@ -0,0 +1,5 @@
|
|||
/obj
|
||||
/*.bin
|
||||
/*.elf
|
||||
/*.g1a
|
||||
/images
|
2
Makefile
2
Makefile
|
@ -41,7 +41,7 @@ $(NAME).g1a: $(NAME).bin
|
|||
|
||||
## Clean up your mess
|
||||
clean:
|
||||
$(RM) $(ALLOBJ)
|
||||
$(RM) $(OBJDIR)
|
||||
$(RM) $(NAME).elf
|
||||
$(RM) $(NAME).bin
|
||||
|
||||
|
|
|
@ -11,14 +11,13 @@ SRCDIR = ./src
|
|||
INCDIR = ./include
|
||||
OBJDIR = ./obj
|
||||
LIBDIR = ./lib
|
||||
SCPTDIR = ./scripts
|
||||
IMGDIR = ./img
|
||||
|
||||
# TOOLCHAIN
|
||||
## Directory maker
|
||||
MD = mkdir -p
|
||||
## File remover
|
||||
RM = rm -f
|
||||
RM = rm -rf
|
||||
## Assembler
|
||||
AS = sh3eb-elf-as
|
||||
## C compiler
|
||||
|
|
BIN
img/menu.bmp
BIN
img/menu.bmp
Binary file not shown.
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
@ -1,22 +1,24 @@
|
|||
#ifndef _VOITURE
|
||||
#define _VOITURE
|
||||
|
||||
|
||||
unsigned int key;
|
||||
char decal=1;
|
||||
|
||||
char obstacles[100]; // permet d'avoir de l'aléatoire pondéré pour les obstacles/bonus
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct Obstacles
|
||||
{
|
||||
char num_obst;
|
||||
short coordx;
|
||||
}Obstacles;
|
||||
|
||||
} Obstacles;
|
||||
|
||||
int Menu(void);
|
||||
int Jeu(void);
|
||||
void draw_lines(int decalx);
|
||||
void init_obstacle(void);
|
||||
void mort(int score, int type);
|
||||
void garage(void);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
194
src/voiture.c
194
src/voiture.c
|
@ -4,58 +4,79 @@
|
|||
#include "keyboard.h"
|
||||
#include "stdio.h"
|
||||
#include "clock.h"
|
||||
|
||||
static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070};
|
||||
static int (*SysCall)(int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode;
|
||||
|
||||
int RTC_getTicks()
|
||||
{
|
||||
return (*SysCall)(0, 0, 0, 0, 0x3B);
|
||||
}
|
||||
#include "timer.h"
|
||||
|
||||
Obstacles obstacle[4];
|
||||
|
||||
void new_frame()
|
||||
{
|
||||
|
||||
extern Image img_formel1;
|
||||
extern Image img_obstacle;
|
||||
|
||||
dclear();
|
||||
|
||||
dimage(19, 11*decal, &img_formel1);
|
||||
dimage(1, 1, &img_obstacle);
|
||||
|
||||
dupdate();
|
||||
|
||||
|
||||
}
|
||||
|
||||
int Jeu()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
timer_start(TIMER_USER, 25, Clock_Hz, new_frame, 0);
|
||||
while(1)
|
||||
{
|
||||
key = getkey();
|
||||
|
||||
switch(key)
|
||||
{
|
||||
case KEY_UP : decal=(decal<=1 ? 1 : decal-1); break;
|
||||
case KEY_DOWN : decal=(decal>=4 ? 4 : decal+1); break;
|
||||
case KEY_EXIT : timer_stop(TIMER_USER); return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
//if(!memory_exists("\\\\fls0\\F1rush.sav")) memory_createfile("\\\\fls0\\F1rush.sav",10); // on creer le fichier
|
||||
short menu=0;
|
||||
|
||||
Menu();
|
||||
extern Image img_menu;
|
||||
|
||||
return 1;
|
||||
}
|
||||
while(1)
|
||||
{
|
||||
dclear();
|
||||
|
||||
int Menu()
|
||||
{
|
||||
short menu=0;
|
||||
char key=0;
|
||||
dimage(0, 0, &img_menu);
|
||||
|
||||
extern Image img_menu;
|
||||
dreverse_area(62+16*menu,23+21*menu,108+16*menu,39+21*menu);
|
||||
|
||||
while(1)
|
||||
{
|
||||
dclear();
|
||||
dupdate();
|
||||
|
||||
dimage(0, 0, &img_menu);
|
||||
key=getkey();
|
||||
|
||||
dreverse_area(62+16*menu,23+21*menu,108+16*menu,39+21*menu);
|
||||
|
||||
key=getkey();
|
||||
|
||||
switch(key)
|
||||
{
|
||||
case KEY_UP : case KEY_DOWN : menu=!menu; break;
|
||||
case KEY_EXE :
|
||||
|
||||
switch(menu)
|
||||
switch(key)
|
||||
{
|
||||
case 0 : Jeu(); break;
|
||||
case 1 : /*garage();*/ break;
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
case KEY_EXIT : return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*void garage(void)
|
||||
|
@ -102,8 +123,7 @@ PrintMini(11,17,buffer,0);
|
|||
}
|
||||
}*/
|
||||
|
||||
|
||||
int Jeu()
|
||||
/*int Jeu()
|
||||
{
|
||||
|
||||
extern Image img_formel1;
|
||||
|
@ -116,7 +136,7 @@ int speed=50;
|
|||
unsigned int i=0,j=0;
|
||||
char appuie=0;
|
||||
int score=0;
|
||||
char vie=1;
|
||||
char vie=10;
|
||||
int max=100;
|
||||
int money=0;
|
||||
short essence=100;
|
||||
|
@ -139,7 +159,6 @@ for(j=0;j<4;j++)
|
|||
|
||||
if(obstacle[j].coordx<0)
|
||||
{
|
||||
srand(RTC_getTicks());
|
||||
obstacle[j].num_obst=obstacles[rand()%100];
|
||||
obstacle[j].coordx=128+40*j;
|
||||
}
|
||||
|
@ -158,16 +177,16 @@ for(j=0;j<4;j++)
|
|||
case 2 : speed+=25; break;
|
||||
case 3 : speed-=25; break;
|
||||
case 4 : vie++; break;
|
||||
case 5 : decalx_car=74; start_time=RTC_getTicks(); obstacle[decal-1].num_obst=0;break;
|
||||
// case 5 : decalx_car=74; obstacle[decal-1].num_obst=0;break;
|
||||
case 6 : essence=max; break;
|
||||
case 7 : money++; break;
|
||||
case 8 : money+=2; break;
|
||||
}
|
||||
|
||||
if(decalx_car==74 && (int)(RTC_getTicks()-start_time)>192)
|
||||
{
|
||||
decalx_car=24;
|
||||
}
|
||||
// if(decalx_car==74 && (int)(RTC_getTicks()-start_time)>192)
|
||||
// {
|
||||
// decalx_car=24;
|
||||
// }
|
||||
|
||||
obstacle[decal-1].num_obst=0;
|
||||
}
|
||||
|
@ -178,47 +197,44 @@ for(j=0;j<4;j++)
|
|||
}
|
||||
essence=(i%26==0 ? essence-10 : essence); //chaque seconde 10 d'essence partent
|
||||
|
||||
dupdate();
|
||||
|
||||
|
||||
if(getkey_opt(0x00, 1)==KEY_UP && appuie==0) // KEY_CTRL_UP
|
||||
{
|
||||
decal=(decal<=1 ? 1 : decal-1);
|
||||
appuie=1;
|
||||
}
|
||||
else if(getkey_opt(0x00, 1)==KEY_DOWN && appuie==0) //KEY_CTRL_DOWN
|
||||
{
|
||||
decal=(decal>=4 ? 4 : decal+1);
|
||||
appuie=1;
|
||||
}
|
||||
else if (getkey_opt(0x00, 1)==KEY_NONE) // permet de ne pas rester appuiyer sur la touche (simule le Getkey())
|
||||
{
|
||||
appuie=0;
|
||||
}
|
||||
|
||||
if(getkey_opt(0x00, 1)==KEY_EXIT) //KEY_CTRL_EXIT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
/*sprintf(buffer,"metre : %d vie : %d", score, vie);
|
||||
PrintMini(1,1,buffer,0);*/
|
||||
|
||||
//dupdate();
|
||||
dprint(1, 1, "metre : %d vie : %d", score, vie);
|
||||
|
||||
/* sprintf(buffer,"essence %d/%d Argent %d ", essence, max, money);
|
||||
PrintMini(1,56,buffer,0);*/
|
||||
|
||||
dprint(1,56,"essence %d/%d Argent %d ", essence, max, money);
|
||||
|
||||
dupdate();
|
||||
timer_start(TIMER_USER, 80, Clock_Hz, vide, 0);
|
||||
|
||||
sleep_us(75000);
|
||||
//while(1) {
|
||||
|
||||
if(key==KEY_UP && appuie==0) // KEY_CTRL_UP
|
||||
{
|
||||
decal=(decal<=1 ? 1 : decal-1);
|
||||
appuie=1;
|
||||
break;
|
||||
}
|
||||
else if(key==KEY_DOWN && appuie==0) //KEY_CTRL_DOWN
|
||||
{
|
||||
decal=(decal>=4 ? 4 : decal+1);
|
||||
appuie=1;
|
||||
break;
|
||||
}
|
||||
else if (key==KEY_NONE) // permet de ne pas rester appuiyer sur la touche (simule le Getkey())
|
||||
{
|
||||
appuie=0;
|
||||
break;
|
||||
}
|
||||
if(key==KEY_EXIT) //KEY_CTRL_EXIT
|
||||
{
|
||||
timer_stop(TIMER_USER);
|
||||
return 1;
|
||||
}
|
||||
//}
|
||||
|
||||
i+=3;
|
||||
score=(i%4==0 ? score+2: score);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}*/
|
||||
|
||||
void mort(int score , int type)
|
||||
{
|
||||
|
@ -240,23 +256,19 @@ return;
|
|||
|
||||
void init_obstacle()
|
||||
{
|
||||
int i=0;
|
||||
int i=0,j=0;
|
||||
char proba[10]={0,30,70,75,80,83,86,95,98,100};
|
||||
|
||||
while(i<100)
|
||||
while(j<9)
|
||||
{
|
||||
if(i<30) obstacles[i]=0; // vide
|
||||
else if (i>=30 && i<70) obstacles[i]=1;
|
||||
else if (i>=70 && i<75) obstacles[i]=2;
|
||||
else if (i>=75 && i<80) obstacles[i]=3;
|
||||
else if (i>=80 && i<83) obstacles[i]=4;
|
||||
else if (i>=83 && i<86) obstacles[i]=5;
|
||||
else if (i>=86 && i<95) obstacles[i]=6;
|
||||
else if (i>=95 && i<98) obstacles[i]=7;
|
||||
else if (i>=98 /*&& i<100*/) obstacles[i]=8;
|
||||
i++;
|
||||
for(i=proba[j];i<proba[j+1];i++)
|
||||
{
|
||||
obstacles[i]=j;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
|
||||
srand(RTC_getTicks());
|
||||
//srand(RTC_getTicks());
|
||||
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
|
@ -277,7 +289,7 @@ for(i=1;i<4;i++)
|
|||
}
|
||||
}
|
||||
|
||||
dline(10, 1, 128, 1, Color_Black);
|
||||
dline(1, 10, 128, 10, Color_Black);
|
||||
dline(1, 54, 128, 54, Color_Black);
|
||||
|
||||
dupdate();
|
||||
|
|
Loading…
Reference in New Issue