tks Lephé

This commit is contained in:
flo 2017-07-30 16:40:36 +02:00
parent a736fb48f0
commit 6111c42181
2 changed files with 30 additions and 24 deletions

View File

@ -47,9 +47,15 @@ typedef struct Cloud
short y;
} Cloud;
typedef struct Dir_t
{
Direction map_dir;
Direction dir_requested;
} Dir_t;
int menu(void);
void init(void);
void *update_frame(Direction *direction);
void update_frame(Dir_t *way);
int game(void);
#endif

View File

@ -87,20 +87,26 @@ int menu()
}
}
void *update_frame(Direction *map_dir)
void update_frame(Dir_t *way)
{
static unsigned char i,j;
dclear();
dprint(1, 1, "s:%d l:%d", planes[0].bullets, planes[0].life);
dprint(1, 10, "(%d,%d)", map_dir->dx, map_dir->dy);
dprint(1, 10, "(%d,%d)", way->map_dir.dx, way->map_dir.dy);
//dprint(1,10, "(x,y)(%d,%d)", planes[1].x + decalx, planes[1].y + decaly);
if(way->dir_requested.dx != 0 || way->dir_requested.dy != 0)
{
way->map_dir = way->dir_requested;
planes[0].dir = way->dir_requested;
}
for(i = 0; i < MAX_CLOUDS; i++)
{
clouds[i].x += map_dir->dx;
clouds[i].y += map_dir->dy;
clouds[i].x += way->map_dir.dx;
clouds[i].y += way->map_dir.dy;
dimage(clouds[i].x, clouds[i].y, &cloud);
}
@ -108,16 +114,16 @@ void *update_frame(Direction *map_dir)
{
if(i > 0)
{
planes[i].x += map_dir->dx + planes[i].dir.dx;
planes[i].y += map_dir->dy + planes[i].dir.dy;
planes[i].x += way->map_dir.dx - planes[i].dir.dx;
planes[i].y += way->map_dir.dy - planes[i].dir.dy;
}
dimage_part(planes[i].x, planes[i].y, &plane, 16*(1 - planes[i].dir.dx), 16 * (1 - planes[i].dir.dy), 16, 16);
for(j = 0; j < MAX_MISSILES; j++)
{
planes[i].missiles[j].x += map_dir->dx - 2 * planes[i].missiles[j].dir.dx;
planes[i].missiles[j].y += map_dir->dy - 2 * planes[i].missiles[j].dir.dy;
planes[i].missiles[j].x += way->map_dir.dx - 2 * planes[i].missiles[j].dir.dx;
planes[i].missiles[j].y += way->map_dir.dy - 2 * planes[i].missiles[j].dir.dy;
dimage_part(planes[i].missiles[j].x, planes[i].missiles[j].y ,&missile, 8 * (1 - planes[i].missiles[j].dir.dx), 8 * (1 - planes[i].missiles[j].dir.dy), 8, 8);
}
@ -130,19 +136,19 @@ int game()
unsigned char fire = 0, j = 0; // fire disable
//direction for the map
Direction map_dir, dir_requested;
Dir_t way;
init();
timer_t *timer = NULL;
timer = timer_create(40, 0);
timer_attach(timer, update_frame, &map_dir);
timer = timer_create(50, 0);
timer_attach(timer, update_frame, &way);
timer_start(timer);
event_t events;
map_dir.dx = dir_requested.dx = 0;
map_dir.dy = dir_requested.dy = 0;
way.map_dir.dx = way.dir_requested.dx = 0;
way.map_dir.dy = way.dir_requested.dy = 0;
while(1)
{
@ -154,22 +160,22 @@ int game()
{
case KEY_UP :
{
dir_requested.dy += 3 - events.type;
way.dir_requested.dy += 3 - events.type;
break;
}
case KEY_DOWN :
{
dir_requested.dy -= 3 - events.type;
way.dir_requested.dy -= 3 - events.type;
break;
}
case KEY_LEFT :
{
dir_requested.dx += 3 - events.type;
way.dir_requested.dx += 3 - events.type;
break;
}
case KEY_RIGHT :
{
dir_requested.dx -= 3 - events.type;
way.dir_requested.dx -= 3 - events.type;
break;
}
@ -193,12 +199,6 @@ int game()
}
}
if(dir_requested.dx != 0 || dir_requested.dy != 0)
{
map_dir = dir_requested;
planes[0].dir = dir_requested;
}
if(fire)
{
planes[0].missiles[0].dir = planes[0].dir;