133 lines
3.3 KiB
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]);
|
|
}
|