
snakers07
|
DSL , en relisant mon message, c'est vrai que c'est du grand n'importe quoi, le mémory est un jeux je pense que vous connaissez, le principe est sur un plateau de 36 cartes, si on tire 2 fois la meme carte alors elle se fige... otrement elle se retourne, comme si de rien n'était, je ne vous demande pas de faire mon devoir , mais juste de m'apporter un peu d'aide je présente mon probleme!!
j'ai créer ma fenetre graphique grace a la sdl, il me reste a charger les images des cartes, la j'ai juste charger le fond que j'ai creer grace a un tableau de 18 surface, 1ere probleme, je ne vois pas comment dire au programme que quand j'appuis sur entrée, il m'affiche la carte01, que je viens de charger dans mon code sous image[0]; sans okune kontrainte
le 2eme probleme:: je veux creer le jeu grace au langage c, je veu crer un tableau de [6][6],trié aléatoire entre 0 et 17,mais je n'arrive plus a ouvrir ma console windows, les printf ne sont pas pris en compte alors je ne sais pas comment faire!!! voila mes explications jespere que vous pourrez maidez, merci d'avance, dsl si les questions sont trop débutantes DSL pour les fautes!! tenez voici mon code!! (je sais il é pas jolie)!! #include<SDL/SDL.h> #include<stdlib.h> #include<stdio.h> SDL_Rect dest; int x,y; SDL_Surface *tmp; SDL_Surface *ecran; SDL_Surface *fond; SDL_Surface *image[18]; SDL_Surface *curseur; SDL_Surface *temps; SDL_Surface *coups; SDL_Surface *chiffres[10]; SDL_Rect positioncurseur; SDL_Event event; int continuer = 1; int x,y; void affichage_cartes_dos() { for(y=0;y<6;y++) { for(x=0;x<6;x++) { dest.x=152*x; dest.y=112*y;
SDL_BlitSurface(fond,NULL,ecran,&dest); } } dest.x=0; dest.y=682; SDL_BlitSurface(temps, NULL, ecran, &dest); dest.x=600; dest.y=682; SDL_BlitSurface(coups, NULL, ecran, &dest); SDL_UpdateRect(ecran,0,0,0,0); }
void initSDL() { ///////////////////intialisation + chargement//////////////////////
if (SDL_Init(SDL_INIT_VIDEO)<0) {
printf("erreur initiallisation SDL: %s",SDL_GetError()); exit(1); } atexit(SDL_Quit); ecran = SDL_SetVideoMode (900,800,24,SDL_SWSURFACE |SDL_DOUBLEBUF); if (ecran==NULL) { printf("erreur initiallisation ecran: %s",SDL_GetError()); exit(2); } }
void chargementimages() { int i=0; fond=SDL_LoadBMP("carte_dos.bmp"); image[0]=SDL_LoadBMP("Carte01.bmp"); temps=SDL_LoadBMP("temps.bmp"); coups=SDL_LoadBMP("coups.bmp"); curseur=SDL_LoadBMP("curseur.bmp"); for(i=0;i<10;i++){ chiffres[i]=SDL_LoadBMP("chiffre/%d.bmp",i); } }
int curseurdep() {int JeuDemarre=1; int Temps=0; int TempsDepart=0; char ChaineTemps[6]; int i=0;
positioncurseur.x = 112; positioncurseur.y = 72;
SDL_SetColorKey(curseur, SDL_SRCCOLORKEY, SDL_MapRGB(curseur->format, 0, 0, 0)); /* Transparence Alpha moyenne (128) : */ SDL_SetAlpha(curseur, SDL_SRCALPHA, 255); while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_UP: // Flèche haut positioncurseur.y=positioncurseur.y-112; break; case SDLK_DOWN: // Flèche bas positioncurseur.y=positioncurseur.y+112; break; case SDLK_RIGHT: // Flèche droite positioncurseur.x=positioncurseur.x+152; break; case SDLK_LEFT: // Flèche gauche positioncurseur.x=positioncurseur.x-152; break; case SDLK_ESCAPE: /* Appui sur la touche Echap, on arrête le programme */ continuer = 0; break; }
}
if (positioncurseur.x==0) { positioncurseur.x=872; }
if (positioncurseur.x>=880) { positioncurseur.x=112; } if (positioncurseur.y==0) { positioncurseur.y=632; } if (positioncurseur.y>=672) { positioncurseur.y=72; }
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); affichage_cartes_dos(); SDL_BlitSurface(curseur, NULL, ecran, &positioncurseur); SDL_Flip(ecran); /* On met à jour l'affichage */ SDL_UpdateRect(ecran,0,0,0,0);
} return (positioncurseur.x,positioncurseur.y); }
int main(int argc, char *argv[]) { char nomFichier[256]; initSDL(); chargementimages(); affichage_cartes_dos(); curseurdep();
|