Skip to content
Snippets Groups Projects
Commit a60df2a3 authored by Samibenzid's avatar Samibenzid
Browse files

Remplacement TTF(Menu)et remise en forme du code

parent 08685323
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
void init_ressource(SDL_Renderer *renderer, ressources_t *textures){ void init_ressource(SDL_Renderer *renderer, ressources_t *textures){
textures->background = load_image( "ressources/Elements/background2.bmp",renderer); textures->background = load_image( "ressources/Elements/background2.bmp",renderer);
textures->bmenu = load_image( "ressources/image-menu.bmp",renderer);
textures->ship = load_image( "ressources/spaceship.bmp",renderer); textures->ship = load_image( "ressources/spaceship.bmp",renderer);
textures->finishLine = load_image( "ressources/finish_line.bmp",renderer); textures->finishLine = load_image( "ressources/finish_line.bmp",renderer);
...@@ -72,10 +73,22 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,ressources_t *textu ...@@ -72,10 +73,22 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,ressources_t *textu
//on vide le renderer //on vide le renderer
clear_renderer(renderer); clear_renderer(renderer);
//application des textures dans le renderer
apply_background(renderer, textures->background, world);
if (!world->isMenu){ if (world->isMenu == 0){
ingame(renderer,world,textures);
}else if(world -> isMenu==1){
inmenu(renderer,world,textures);
}
update_screen(renderer);
}
void inmenu(SDL_Renderer *renderer, world_t *world,ressources_t *textures){
apply_background(renderer, textures->bmenu, world);
}
void ingame(SDL_Renderer *renderer, world_t *world,ressources_t *textures){
apply_background(renderer, textures->background, world);//application des textures dans le renderer
apply_sprite(renderer, textures->ship, world->vaisseau, world); apply_sprite(renderer, textures->ship, world->vaisseau, world);
apply_sprite(renderer, textures->finishLine, world->ligneArriver, world); apply_sprite(renderer, textures->finishLine, world->ligneArriver, world);
apply_walls(renderer, textures->meteorite, world, textures); apply_walls(renderer, textures->meteorite, world, textures);
...@@ -85,15 +98,7 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,ressources_t *textu ...@@ -85,15 +98,7 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,ressources_t *textu
world->str = strcats(world->str, 3, "temps: ",int_to_str((int)world->timer/1000), "s"); world->str = strcats(world->str, 3, "temps: ",int_to_str((int)world->timer/1000), "s");
} }
apply_text(renderer, 10, 10, 100, 33, world->str, textures->font, textures->color); apply_text(renderer, 10, 10, 100, 33, world->str, textures->font, textures->color);
}else{
apply_text(renderer, 10, 10, 100, 33, "Menu", textures->font, textures->color);
apply_text(renderer, 100, 100, 100, 33, "Jouer", textures->font, textures->color);
apply_text(renderer, 100, 200, 100, 33, "Magasin", textures->font, textures->color);
apply_text(renderer, 100, 300, 100, 33, "Exit", textures->font, textures->color);
}
update_screen(renderer);
} }
int timer_update_s(world_t *world){ int timer_update_s(world_t *world){
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
* \brief La structure qui contient les textures du jeu * \brief La structure qui contient les textures du jeu
* *
* \param background * \param background
* \param bmenu
* \param ship * \param ship
* \param meteorite * \param meteorite
* \param finishLine * \param finishLine
...@@ -33,6 +34,7 @@ ...@@ -33,6 +34,7 @@
*/ */
struct ressources_s{ struct ressources_s{
SDL_Texture* background; /*!< Texture liée à l'image du fond de l'écran. */ SDL_Texture* background; /*!< Texture liée à l'image du fond de l'écran. */
SDL_Texture* bmenu;/*!< Texture liée à l'image du fond du menu. */
SDL_Texture* ship; /*!< Texture liée à l'image du vaisseau. */ SDL_Texture* ship; /*!< Texture liée à l'image du vaisseau. */
SDL_Texture* meteorite; /*!< Texture liée à l'image du météorite. */ SDL_Texture* meteorite; /*!< Texture liée à l'image du météorite. */
SDL_Texture* e_rotate; /*!< Texture liée à l'image de l'élément de rotation. */ SDL_Texture* e_rotate; /*!< Texture liée à l'image de l'élément de rotation. */
...@@ -126,4 +128,9 @@ void clean(SDL_Window *window, SDL_Renderer * renderer, ressources_t *textures, ...@@ -126,4 +128,9 @@ void clean(SDL_Window *window, SDL_Renderer * renderer, ressources_t *textures,
* \return int * \return int
*/ */
int timer_update_s(world_t *world); int timer_update_s(world_t *world);
void ingame(SDL_Renderer *renderer, world_t *world,ressources_t *textures);
void inmenu(SDL_Renderer *renderer, world_t *world,ressources_t *textures);
#endif #endif
\ No newline at end of file
No preview for this file type
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include "../utility/utility.h" #include "../utility/utility.h"
void update_data(world_t *world){ void update_data(world_t *world){
if (!world->isMenu){ if (world->isMenu==0){
world->ligneArriver->y += (int)world->speed_h; world->ligneArriver->y += (int)world->speed_h;
update_walls(world); update_walls(world);
if (isOverScreen(world->vaisseau)){ if (isOverScreen(world->vaisseau)){
...@@ -36,24 +36,25 @@ void init_data(world_t * world){ ...@@ -36,24 +36,25 @@ void init_data(world_t * world){
world->vaisseau = init_sprite(world->vaisseau, SCREEN_WIDTH/2 - SHIP_SIZE/2, SCREEN_HEIGHT - SHIP_SIZE, SHIP_SIZE, SHIP_SIZE, '0'); world->vaisseau = init_sprite(world->vaisseau, SCREEN_WIDTH/2 - SHIP_SIZE/2, SCREEN_HEIGHT - SHIP_SIZE, SHIP_SIZE, SHIP_SIZE, '0');
init_walls(world); init_walls(world);
world->ligneArriver = init_sprite(world->ligneArriver, 0, -world->nb_lines_murs*METEORITE_SIZE-30 , SCREEN_WIDTH, FINISH_LINE_HEIGHT, 'z'); world->ligneArriver = init_sprite(world->ligneArriver, 0, -world->nb_lines_murs*METEORITE_SIZE-30 , SCREEN_WIDTH, FINISH_LINE_HEIGHT, 'z');
InitMenu(world);
world->play = init_btn(100,40, 80, 80);
world->exit = init_btn(100, 300, 80, 80);
world->magasin = init_btn(100, 150, 80, 80);
world->sound = init_btn(0, 0, 100, 100);
print_sprite(world->vaisseau); print_sprite(world->vaisseau);
world->startTimer = SDL_GetTicks(); world->startTimer = SDL_GetTicks();
world->timer = SDL_GetTicks(); world->timer = SDL_GetTicks();
world->str = malloc(sizeof(char)*100); world->str = malloc(sizeof(char)*100);
world->angle = 0.0; world->angle = 0.0;
world->isFlipping = 0; world->isFlipping = 0;
world->isMenu = true; world->isMenu = 1;
world->mouseX = 0; world->mouseX = 0;
world->mouseY = 0; world->mouseY = 0;
} }
void InitMenu(world_t * world){
world->play = init_btn(203,129, 218, 97);
world->exit = init_btn(202,294, 218, 97);
world->magasin = init_btn(436, 217, 218, 97);
world->sound = init_btn(0, 0, 100, 100);
}
void clean_data(world_t *world){ void clean_data(world_t *world){
/* utile uniquement si vous avez fait de l'allocation dynamique (malloc); la fonction ici doit permettre de libérer la mémoire (free) */ /* utile uniquement si vous avez fait de l'allocation dynamique (malloc); la fonction ici doit permettre de libérer la mémoire (free) */
......
...@@ -54,7 +54,7 @@ struct world_s{ ...@@ -54,7 +54,7 @@ struct world_s{
char * str; // String affichant le temps sur le jeu char * str; // String affichant le temps sur le jeu
double angle; // Angle de rotation de la map double angle; // Angle de rotation de la map
int isFlipping; // Indique si l'on est en train de faire une rotation de l'écran et dans quelle sens (0 : non droite, 1 : vers la droite, -1 : vers la gauche, -2 : non gauche) int isFlipping; // Indique si l'on est en train de faire une rotation de l'écran et dans quelle sens (0 : non droite, 1 : vers la droite, -1 : vers la gauche, -2 : non gauche)
bool isMenu; int isMenu;
int mouseX; int mouseX;
int mouseY; int mouseY;
...@@ -127,4 +127,6 @@ void update_walls(world_t *world); ...@@ -127,4 +127,6 @@ void update_walls(world_t *world);
* \param world * \param world
*/ */
void allEvents(world_t *world); void allEvents(world_t *world);
void InitMenu(world_t *world);
#endif #endif
No preview for this file type
No preview for this file type
ressources/image-menu.bmp

1.76 MiB

No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment