Soyez le premier à donner votre avis sur cette source.
Snippet vu 11 667 fois - Téléchargée 20 fois
#include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> int creabouton(int positionx, int positiony, int w, int h, SDL_Surface* ecran, int couleura, int couleurb, int couleurc) { int continuer = 1, i = 0, resultat = 0, j = 0, resultat2 = 0, j2 = 0; SDL_Event event; SDL_Surface *bouton = NULL, *degrader = NULL; SDL_Rect position, position2; position.x = positionx; position.y = positiony; position2.x = positionx; position2.y = positiony; bouton = SDL_CreateRGBSurface(SDL_HWSURFACE, w, h, 32, 0, 0, 0, 0); SDL_FillRect(bouton, NULL, SDL_MapRGB(ecran->format, couleura, couleurb, couleurc)); SDL_BlitSurface(bouton, NULL, ecran, &position); resultat2 = (4*h)/100; resultat = (4*w)/100; for(i = 0; i < resultat || i < resultat2; i++) { if(i < resultat) { degrader = SDL_CreateRGBSurface(SDL_HWSURFACE, 1, h, 32, 0, 0, 0,0); SDL_FillRect(degrader, NULL, SDL_MapRGB(bouton->format, j, j, j)); SDL_BlitSurface(degrader, NULL, ecran, &position); position.x++; j += 255/resultat; } if(i < resultat2) { degrader = SDL_CreateRGBSurface(SDL_HWSURFACE, w, 1, 32, 0, 0, 0,0); SDL_FillRect(degrader, NULL, SDL_MapRGB(bouton->format, j2, j2, j2)); SDL_BlitSurface(degrader, NULL, ecran, &position2); position2.y++; j2 += 255/resultat2; } } SDL_Flip(ecran); while(continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; break; case SDL_MOUSEBUTTONDOWN: if(event.button.x >= positionx && event.button.x <= (positionx + w) && event.button.y >= positiony && event.button.y <= (positiony + h)) { return 1; continuer = 0; } break; } } } int main ( int argc, char** argv ) { int fenetre = 0; SDL_Surface *ecran = NULL; SDL_Init(SDL_INIT_VIDEO); SDL_Event event; ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); SDL_WM_SetIcon(SDL_LoadBMP("icon.bmp"), NULL); SDL_WM_SetCaption("Fenetre avec bouton a martin", NULL); SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); fenetre = creabouton(200, 300, 210, 100, ecran, 0, 0, 0); SDL_Flip(ecran); if(fenetre == 1) { fenetre = 0; SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 033, 50)); fenetre = creabouton(640/2, 480/2, 40, 40, ecran, 25, 250, 0); SDL_Flip(ecran); } if(fenetre == 1) { fenetre = 0; fenetre = creabouton(0, 0, 400, 360, ecran, 255, 0, 255); } SDL_Quit(); }
2 août 2012 à 22:43
int creabouton(int positionx, int positiony, int w, int h, SDL_Surface* ecran, int couleura, int couleurb, int couleurc, int j)
{ int choisir 1, i 0;
SDL_Event event;
SDL_Surface *bouton = NULL;
SDL_Rect position;
position.x = positionx;
position.y = positiony;
bouton = SDL_CreateRGBSurface(SDL_HWSURFACE, w, h, 32, 0, 0, 0, 0);
SDL_FillRect(bouton, NULL, SDL_MapRGB(ecran->format, couleura, couleurb, couleurc));
SDL_BlitSurface(bouton, NULL, ecran, &position);
SDL_Flip(ecran);
}
void choixbouton(SDL_Surface *ecran)
{
SDL_Event event;
int choisir = 1;
while(choisir)
{......
.........
}
}
Tu pourras utiliser chacunes d'entre elles séparément.
Et si tutrouves comment mettre des images sur chaque point, dis le moi.
20 mai 2010 à 19:56
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.