diff --git a/README.md b/README.md index 4dbc63c..971b024 100644 --- a/README.md +++ b/README.md @@ -53,3 +53,4 @@ La présentation se trouve dans le [dossier présentation](presentation/presenta ## Sources - [Image du dépôt](https://pixabay.com/vectors/bomb-cartoon-iconic-2025548/) +- [Image du bois](https://pixabay.com/vectors/crate-box-wood-pattern-wooden-147618/) diff --git a/images/bois.bmp b/images/bois.bmp new file mode 100644 index 0000000..6798d53 Binary files /dev/null and b/images/bois.bmp differ diff --git a/window.c b/window.c index 964fee3..0e4d221 100644 --- a/window.c +++ b/window.c @@ -29,6 +29,7 @@ static void sortie(void); /*!\brief Surface représentant un cube */ static surface_t * _cube = NULL; +static surface_t * _cubeBois = NULL; static float _cubeSize = 4.f; /*!\brief Surface représentant une sphère */ @@ -122,7 +123,6 @@ int main(int argc, char ** argv) { /*!\brief init de nos données, spécialement le plateau */ void init(void) { - GLuint id; /* Création d'un screen GL4Dummies (texture dans laquelle nous * pouvons dessiner) aux dimensions de la fenêtre. IMPORTANT de * créer le screen avant d'utiliser les fonctions liées au @@ -130,20 +130,25 @@ void init(void) { gl4dpInitScreen(); /* Création du cube */ - _cube = mk_cube(); /* ça fait 2x6 triangles */ - _sphere = mk_sphere(12, 12); /* ça fait 12x12 triangles */ + _cube = mk_cube(); /* ça fait 2x6 triangles */ + _cubeBois = mk_cube(); /* ça fait 2x6 triangles */ + _sphere = mk_sphere(12, 12); /* ça fait 12x12 triangles */ /* Rajoute la texture */ - id = get_texture_from_BMP("images/tex.bmp"); - set_texture_id(_cube, id); - set_texture_id(_sphere, id); + GLuint tex = get_texture_from_BMP("images/tex.bmp"); + set_texture_id(_cube, tex); + set_texture_id(_sphere, tex); + GLuint bois = get_texture_from_BMP("images/bois.bmp"); + set_texture_id(_cubeBois, bois); /* Affichage des textures */ enable_surface_option(_cube, SO_USE_TEXTURE); + enable_surface_option(_cubeBois, SO_USE_TEXTURE); enable_surface_option(_sphere, SO_USE_TEXTURE); /* Affichage des ombres */ enable_surface_option(_cube, SO_USE_LIGHTING); + enable_surface_option(_cubeBois, SO_USE_LIGHTING); enable_surface_option(_sphere, SO_USE_LIGHTING); /* Si _use_vsync != 0, on active la synchronisation verticale */ @@ -458,14 +463,14 @@ void draw(void) { } /* Bloc destructible */ if(_plateau[i * _grilleW + j] == 4) { - _cube->dcolor = couleurBois; + _cubeBois->dcolor = couleurBois; /* copie model_view_matrix dans nmv */ memcpy(nmv, model_view_matrix, sizeof(nmv)); /* pour convertir les coordonnées i, j de la grille en x, z du monde */ translate(nmv, _cubeSize * j + cX, 0.0f, _cubeSize * i + cZ); scale(nmv, _cubeSize / 2.6f, _cubeSize / 2.6f, _cubeSize / 2.6f); - transform_n_rasterize(_cube, nmv, projection_matrix); + transform_n_rasterize(_cubeBois, nmv, projection_matrix); } } @@ -612,6 +617,10 @@ void sortie(void) { free_surface(_cube); _cube = NULL; } + if(_cubeBois) { + free_surface(_cubeBois); + _cubeBois = NULL; + } /* on libère la sphère */ if(_sphere) {