1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
| #include <SDL2/SDL.h>
#include <iostream>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_mixer.h>
#include "button.h"
void replay(); //pour relancer la musique
void replay()
{
Mix_HaltMusic();
Mix_PlayMusic(Mix_LoadMUS("./resources/musique.ogg"), -1);
}
int main(int argc, char **argv)
{
// Notre fenêtre
SDL_Window* fenetre(0); //creation de la fenetre
char* path = "./resources/fond.jpg"; //images (pour les boutons et le fond)
char* resumebTex = "./resources/continuer.png";
char* newbTex = "./resources/new.png";
char* optbTex = "./resources/opt.png";
char* quitbTex = "./resources/quit.png";
char* onbTex = "./resources/on.png";
char* clickbTex = "./resources/click.png";
SDL_Event event;
bool quit(false);
// Initialisation de la SDL
if(SDL_Init(SDL_INIT_VIDEO) < 0) //initialisation de la SDL
{
std::cout << "Erreur lors de l'initialisation de la SDL : " << SDL_GetError() << std::endl;
SDL_Quit();
return -1;
}
// initialisation de la fenêtre
fenetre = SDL_CreateWindow("menu jeu", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 450, 590, SDL_WINDOW_SHOWN);
//fond
SDL_Surface* imageDeFond;
imageDeFond = IMG_Load(path);
if ( imageDeFond )
{
SDL_Rect dest = { 450/2 - imageDeFond->w/2,590/2 - imageDeFond->h/2, 0, 0};
SDL_BlitSurface(imageDeFond,NULL,SDL_GetWindowSurface(fenetre),&dest); // Copie du sprite
}
else
{
std::cout << "Échec de chargement du fond : " << SDL_GetError() << std::endl;
}
//creation des boutons
button resumeb(225, 50, 324, 71, &resumebTex, &onbTex, &clickbTex, SDL_GetWindowSurface(fenetre));
button newb(225, 170, 324, 71, &newbTex, &onbTex, &clickbTex, SDL_GetWindowSurface(fenetre));
button optb(225, 290, 324, 71, &optbTex, &onbTex, &clickbTex, SDL_GetWindowSurface(fenetre));
button quitb(225, 410, 324, 71, &quitbTex, &onbTex, &clickbTex, SDL_GetWindowSurface(fenetre));
//initialisation musique
if( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 4096 ) == -1 )
{
return false;
}
//musique
Mix_PlayMusic(Mix_LoadMUS("./resources/musique.ogg"), -1);
//boucle principale
while( quit == false )
{
SDL_PollEvent(&event);
// Switch sur le type d'évènement
switch(event.type)
{
case SDL_KEYDOWN:
// Gestion des touches
switch(event.key.keysym.scancode)
{
case SDL_SCANCODE_ESCAPE:
quit=true;
break;
}
break;
// Cas de la fermeture de la fenêtre
case SDL_WINDOWEVENT:
if(event.window.event == SDL_WINDOWEVENT_CLOSE)
quit = true;
break;
}
//test effectués par les boutons
if(resumeb.check(&event))
{
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, "aucune partie", "vous n'avez pas de partie en cours", NULL);
}
if(optb.check(&event))
{
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, "option", "coming soon !", NULL);
}
if(newb.check(&event))
{
//c'était aussi pour montrer a ma soeur que n'importe qui pouvait faire un faux menu qui installe un virus (elle voulait en telecharger un) d'où le message qui suit
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "VIRUS", "j'aurais pu t'installer un virus", NULL);
}
if(quitb.check(&event))
{
quit = true;
}
//test musique finie
Mix_HookMusicFinished(replay);
//actualisation fenetre
SDL_UpdateWindowSurface(fenetre);
}
//fermeture de la fenetre
SDL_FreeSurface(imageDeFond);
SDL_DestroyWindow(fenetre);
Mix_CloseAudio();
SDL_Quit();
return 0;
} |
Partager