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
|
#include "SDL/SDL_image.h"
#include <SDL/SDL.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "graphique.h"
#include "fonction.h"
//Definition des surfaces sur lesquelles on dessine.
SDL_Surface *ecran = NULL;
SDL_Surface *image_fond = NULL;
//Definition de l'emplacement des different elements affiches dans l'ecran.
SDL_Rect positionImageFond;
SDL_Rect positionMenu;
//definition des variables de couleurs.
Uint8 **carre;
Uint8 noir;
Uint8 bleu;
Uint8 rouge;
Uint8 jaune;
void Creation_fenetre(int bouteille[H][L])
{
SDL_Init(SDL_INIT_VIDEO);
// Gere_erreur();
// Ajout_icone_titre();
Initialisation_des_surfaces();
Init_couleur();
Init_position_Images();
// Interprete_bouteille(bouteille);
image_fond = SDL_LoadBMP("Dr Mario modifier.bmp"); // charge l'image de fond
SDL_FillRect(menu , NULL , jaune); //change la couleur de menu
SDL_BlitSurface(image_fond, NULL , ecran , &positionImageFond);
SDL_BlitSurface(menu , NULL, ecran , &positionMenu);
// Mise a jour de l'ecran
SDL_Flip(ecran);
Affiche_fenetre();
// libere les espaces memoires des surfaces
Liberation();
SDL_Quit();
//Maintenant je vous mets les fonctions utilisées au-dessus
void Initialisation_des_surfaces() // A faire au cas par cas !!!
{
ecran = SDL_SetVideoMode(800, 600, 8, SDL_SWSURFACE); // faire la gestion des erreurs.
menu = SDL_CreateRGBSurface( SDL_SWSURFACE , 400 , 600 , 8 ,0 ,0 ,0 ,0); // initialisation du rectangle menu
// Bouton = SDL_CreateRGBSurface( SDL_SWSURFACE, 200, 75, 8, 0 ,0 ,0 ,0);
// Gellules_Virus = SDL_CreateRGBSurface( SDL_SWSURFACE, 32, 32, 8, 0, 0, 0, 0);
}
void Affiche_fenetre()
{
SDL_Event event;
int continuer;
continuer = 1;
while(continuer)
{
SDL_WaitEvent(&event);
if(event.type == SDL_QUIT)
{
exit(0);
}
if (event.type == SDL_KEYDOWN)
{
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE :
continuer = 0;
exit(0);
break;
default : break;
}
}
if( (event.type == SDL_MOUSEBUTTONDOWN) && (event.button.button == SDL_BUTTON_LEFT) )
{
if( ( (event.button.x >= positionBouton.x) && (event.button.x <= positionBouton.x + 200) ) && ( (event.button.y >= 435) && (event.button.y <= 510) ) )
{
continuer = 0;
exit(0);
}
}
// Fonction_boutons(event);
}
}
void Init_couleur()
{
noir = SDL_MapRGB(ecran->format, 0 , 0, 0);
bleu = SDL_MapRGB(ecran->format, 0, 0 ,255);
rouge = SDL_MapRGB(ecran->format, 255, 0, 0);
jaune = SDL_MapRGB(ecran->format, 255, 255, 0);
blanc = SDL_MapRGB(ecran->format, 255, 255, 255);
}
void Init_position_Images() //initialisation des coordonnées pour ...
{
// l'image de fond
positionImageFond.x = 0;
positionImageFond.y = 0;
// de la surface du Menu
positionMenu.x = (800/2) - (400/2);
positionMenu.y = 0;
// de la surface des boutons
positionBouton.x = positionMenu.x + 100;
positionBouton.y = 90;
}
// libere les espaces memoires des surfaces
void Liberation_toutes_surfaces() // A faire au cas par cas !!!
{
SDL_FreeSurface(Bouton);
SDL_FreeSurface(menu);
SDL_FreeSurface(image_fond);
} |
Partager