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 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <SDL.h>
#include <SDL_ttf.h>
#include <stdbool.h>
#include "menu.h"
#include <SDL_main.h>
#include "gameloop.h"
void menuDuJeu(SDL_Renderer *renderer ){
int curseur=0;
struct button {int x; int y; int w; int h };
struct button bouton ={400,160,60,300};
SDL_Rect Start = {bouton.x,bouton.y,bouton.h,bouton.w};
//Création des 3 boutons
SDL_SetRenderDrawColor(renderer, 255,255,255,0);
SDL_RenderFillRect(renderer, &Start);
//le rectangle du bouton Start
SDL_Rect Option = {bouton.x,bouton.y+100,bouton.h,bouton.w};
SDL_SetRenderDrawColor(renderer, 255,255,255,0);
SDL_RenderFillRect(renderer, &Option);
//le rectangle du bouton Option
SDL_Rect Quitter = {bouton.x,bouton.y+200,bouton.h,bouton.w};
SDL_SetRenderDrawColor(renderer, 255,255,255,0);
SDL_RenderFillRect(renderer, &Quitter);
//le rectangle du bouton Quitter
TTF_Font* police = NULL; // le bordel de la police
police = TTF_OpenFont("/Users/macbookprosimon/Desktop/CasseBrique2/victoria_typewriter/Victoria Typewriter Regular.ttf", 40);
SDL_Color colorGreen = { 0, 255, 0 };
SDL_Color colorBlue = { 0, 0, 255 };
SDL_Color colorViolet = { 255, 0, 255 };
SDL_Surface* jouer = TTF_RenderText_Blended(police, "jouer ", colorGreen); // le bouton play
SDL_Texture* textureJouer = SDL_CreateTextureFromSurface(renderer, jouer);
SDL_FreeSurface(jouer);
SDL_Rect rect = { 510, 170, 80, 40 };
SDL_RenderCopy(renderer, textureJouer, NULL, &rect);
SDL_Surface* option = TTF_RenderText_Blended(police,"options",colorGreen); // le bouton options
SDL_Texture* textureOption = SDL_CreateTextureFromSurface(renderer, option);
SDL_FreeSurface(option);
SDL_Rect rect1 = { 510,270,80,40};
SDL_RenderCopy(renderer, textureOption, NULL, &rect1);
SDL_Surface* quitter = TTF_RenderText_Blended(police,"quitter",colorGreen); // le bouton quitter
SDL_Texture* textureQuitter = SDL_CreateTextureFromSurface(renderer, quitter);
SDL_FreeSurface(quitter);
SDL_Rect rect2 = { 510,370,80,40};
SDL_RenderCopy(renderer, textureQuitter, NULL, &rect2);
SDL_RenderPresent(renderer);
SDL_Event event;
SDL_bool quit = false;
while(!quit) {
SDL_SetRenderDrawColor(renderer,0,0,0,255);
SDL_RenderClear(renderer);
while (SDL_PollEvent(&event)) {
if(event.type == SDL_KEYDOWN){
if (event.key.keysym.sym == SDLK_DOWN) {
curseur += 1;
}
if (event.key.keysym.sym == SDLK_UP) {
curseur -= 1;
}
if(curseur==0 || curseur !=1 || curseur !=2){ // quand le premier choix est sélectionné
option = TTF_RenderText_Blended(police,"jouer",colorBlue);
SDL_RenderPresent(renderer);
if (event.key.keysym.sym== SDLK_SPACE){
curseur==0;
SDL_RenderClear(renderer); // on efface tout le bordel fait precedemment
SDL_Surface* niveau1 = TTF_RenderText_Blended(police, "niveau1 ", colorGreen); // le bouton niveau1
SDL_Texture* textureNiveau1 = SDL_CreateTextureFromSurface(renderer, jouer);
SDL_FreeSurface(niveau1);
SDL_Rect rectniveau1 = { 510, 170, 80, 40 };
SDL_RenderCopy(renderer, textureJouer, NULL, &rectniveau1);
SDL_Surface* niveau2 = TTF_RenderText_Blended(police, "niveau2 ", colorGreen); // le bouton niveau2
SDL_Texture* textureNiveau2 = SDL_CreateTextureFromSurface(renderer, jouer);
SDL_FreeSurface(niveau2);
SDL_Rect rectniveau2 = { 510, 270, 80, 40 };
SDL_RenderCopy(renderer, textureJouer, NULL, &rectniveau2);
SDL_RenderPresent(renderer);
if(curseur==0){ // le bouton niveau 1 est sélectionné et donc devient bleu
niveau1 = TTF_RenderText_Blended(police, "niveau1 ", colorBlue);
if (event.key.keysym.sym== SDLK_SPACE){
SDL_RenderClear(renderer);
gameloop(renderer);
}
}
if (curseur==1){ // le bouton niveau 1 est sélectionné et donc devient bleu
niveau2 = TTF_RenderText_Blended(police, "niveau2 ", colorBlue);
if (event.key.keysym.sym== SDLK_SPACE){
SDL_RenderClear(renderer);
gameloop2(renderer);
}
}
curseur ==0;
}
}
if(curseur==1){ // quand le second choix est sélectionné
option = TTF_RenderText_Blended(police,"options",colorBlue);
SDL_RenderPresent(renderer);
if (event.key.keysym.sym == SDLK_SPACE){ // ce qu'on fait quand c'est séléctionné avec la touche espace
SDL_RenderClear(renderer); // on efface tout le bordel fait precedemment
SDL_Surface* changementCouleur = TTF_RenderText_Blended(police,"passer le fond en violet",colorViolet); // le bouton pour changer le fond de couleur
SDL_Texture* texturechangementCouleur = SDL_CreateTextureFromSurface(renderer, changementCouleur);
SDL_FreeSurface(changementCouleur);
SDL_Rect rectchangementCouleur = { 510,370,80,40};
SDL_RenderCopy(renderer, texturechangementCouleur, NULL, &rectchangementCouleur);
if (event.key.keysym.sym == SDLK_SPACE){
SDL_SetRenderDrawColor(renderer, 255,0,255,0);
menuDuJeu(renderer);// on retourne en arrière
}
}
}
if(curseur==2){
quitter = TTF_RenderText_Blended(police,"quitter",colorBlue);
SDL_RenderPresent(renderer);
if (event.key.keysym.sym == SDLK_SPACE){
SDL_RenderClear(renderer);
SDL_DestroyRenderer(renderer);
quit = true;
}
}
}
if (event.type == SDL_QUIT) {
quit = true;
break;
}
}
}
} |
Partager