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 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
|
//#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;
SDL_Surface *menu = NULL;
SDL_Surface *Bouton = NULL;
SDL_Surface *Gellules_Virus = NULL;
// SDL_Surface *image_transparente = NULL; =>inutile pr linstant.
//Definition de l'emplacement des different elements affiches dans l'ecran.
SDL_Rect positionImageFond;
SDL_Rect positionMenu;
SDL_Rect positionBouton;
SDL_Rect positionG_V;
//definition des variables de couleurs.
//Uint8 **carre;
Uint8 noir;
Uint8 bleu;
Uint8 rouge;
Uint8 jaune;
Uint8 blanc;
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;
// la surface du Menu
positionMenu.x = (800/2) - (256/2);
positionMenu.y = 44;
// la surface des boutons
positionBouton.x = (800/2) -(200/2);
positionBouton.y = 90;
// les gellules et les virus.
positionG_V.x = 32;
positionG_V.y = 32;
}
// libere les espaces memoires des surfaces
void Liberation_memoire_surface(SDL_Surface *a)
{
SDL_FreeSurface(a);
}
void Liberation_toutes_surfaces() // A faire au cas par cas !!!
{
Liberation_memoire_surface(Bouton);
Liberation_memoire_surface(menu);
Liberation_memoire_surface(image_fond);
}
void Colle_sur_ecran() // A faire au cas par cas !!!
{
SDL_BlitSurface(image_fond, NULL , ecran , &positionImageFond);
SDL_BlitSurface(menu , NULL, ecran , &positionMenu);
}
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 , 256 , 512 , 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 Creation_fenetre()
{
SDL_Init(SDL_INIT_VIDEO);
// Gere_erreur();
// Ajout_icone_titre();
Initialisation_des_surfaces();
Init_couleur();
Init_position_Images();
// Interprete_bouteille(bouteille);
SDL_FillRect(ecran , NULL , rouge); // change couleur du fond
SDL_FillRect(menu , NULL , jaune); //change la couleur de menu
// SDL_SetColorKey(menu , SDL_SRCCOLORKEY , jaune);//rend la surface du menu transparente!
// //SDL_FillRect(ecran , NULL, rouge);
// Colle les surface a l'ecran
Colle_sur_ecran();
// Affiche_boutons();
// Interprete_bouteille(bouteille);
// Mise a jour de l'ecran
SDL_Flip(ecran);
Affiche_fenetre();
// libere les espaces memoires des surfaces
Liberation_toutes_surfaces();
SDL_Quit();
}
int main(int argc, char *argv[])
{
// initialisation affichage
Creation_fenetre();
} |
Partager