CPCn26/src/main.c

133 lines
3.3 KiB
C

// Includes !
#include <gint/display.h>
#include <gint/keyboard.h>
//Boucle qui va afficher l'image correspondante à l'emplacement dans le tableau 'map'
void tile(int* map, image_t** img, image_t** sup);
void perso(int* tp, image_t** perso);
int main(void)
{
int tp[2]={0, 0};
key_event_t touche;
int boucle = 0;
//Importation de BEAUCOUPS d'images
extern image_t img_t0;
extern image_t img_t1;
extern image_t img_t2;
extern image_t img_t3;
extern image_t img_t4;
extern image_t img_t5;
extern image_t img_t6;
extern image_t img_t7;
extern image_t img_t8;
extern image_t img_t9;
extern image_t img_t10;
extern image_t img_t11;
extern image_t img_t12;
extern image_t img_t13;
extern image_t img_t14;
extern image_t img_t15;
extern image_t img_Porte;
extern image_t img_Vitesse;
extern image_t img_Rebond;
extern image_t img_1;
extern image_t img_2;
extern image_t img_3;
extern image_t img_4;
extern image_t img_5;
extern image_t img_6;
extern image_t img_7;
extern image_t img_8;
extern image_t img_9;
extern image_t img_10;
extern image_t img_11;
extern image_t img_12;
extern image_t img_13;
extern image_t img_14;
extern image_t img_15;
extern image_t img_G;
extern image_t img_D;
extern image_t img_N;
//16: Porte
//17: Rien
//1xx: Vitesse
//2xx: Rebond
//{, , , , , , , , , , , , , , , }
//La carte de l'ecran pour les tiles
int map[128] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
15, 115, 215, 315, 415, 515, 615, 715, 815, 915, 1015, 1115, 1215, 1315, 1415, 1515,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6, 1614, 1714, 12, 16, 17, 6, 14, 14, 14, 14, 14, 14, 14, 14, 12,
7, 15, 15, 115, 14, 14, 815, 15, 15, 15, 15, 15, 15, 15, 15, 13,
3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 9,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17};
//Les pointeurs des images
image_t* p_img[17] = {&img_t0, &img_t1, &img_t2, &img_t3, &img_t4, &img_t5, &img_t6, &img_t7, &img_t8, &img_t9, &img_t10, &img_t11, &img_t12, &img_t13, &img_t14, &img_t15, &img_Porte};
image_t* p_sup[17] = {&img_1, &img_2, &img_3, &img_4, &img_5, &img_6, &img_7, &img_8, &img_9, &img_10, &img_11, &img_12, &img_13, &img_14, &img_15, &img_Vitesse, &img_Rebond};
image_t* p_perso[3] = {&img_G, &img_N, &img_D};
//Le dessin ^^
while (boucle == 0)
{
dclear(C_WHITE);
tile(map, p_img, p_sup);
perso(tp, p_perso);
//L'affichage
dupdate();
touche = pollevent();
switch (touche.key)
{
case KEY_LEFT:
if (touche.type == KEYEV_DOWN)
tp[0] = 1;
else
tp[0] = 0;
break;
case KEY_RIGHT:
if (touche.type == KEYEV_DOWN)
tp[1] = 1;
else
tp[1] = 0;
break;
case KEY_MENU:
boucle = 1;
break;
}
}
//La fin de la fin
return 1;
}
void tile(int* map, image_t** img, image_t** sup)
{
for (int i = 0 ; i <= 7 ; i++)
{
for (int j = 0 ; j <= 15 ; j++)
{
if (map[16*i + j] != 17)
{
dimage(8*j, 8*i, img[map[16*i+j]-(map[16*i+j]/100)*100]);
if (map[16*i+j] > 99)
{
dimage(8*j, 8*i, sup[(map[16*i+j]/100)-1]);
}
}
}
}
}
void perso(int* tp, image_t** perso)
{
if (tp[0] == 1)
dimage(2, 18, perso[0]);
else if (tp[1] == 1)
dimage(2, 18, perso[2]);
else
dimage(2, 18, perso[1]);
}