int main(void) { /*Passer en mode X*/ REG_DISPCNT= (MODE_3 | BG2 | OBJ_ENABLED); snd_init_soundApi(); //Initialisation du son //On met 99 dans sfreq afin de pouvoir faire des tests sur les notes for(chanCourant=0;chanCourant<4;chanCourant++) { for(patternCourant=0;patternCourant<2;patternCourant++) { for(noteEnCours=0;noteEnCours<16;noteEnCours++) { chan[chanCourant].pattern[patternCourant].notes[noteEnCours].sfreq = 99; } } } chanCourant = 0;//PU1 //Pattern en cours patternCourant = 0; //Note en cours noteEnCours = 0; /*Affiche l'écran d'accueil*/ ecranAccueil(); remplirEcran(BLANC); carte(); while(1){ afficherChaine("BUG : ON EST SORTI!",30,50,ROUGE); } return 0; }/*Fin de main()*/
void jeu::initialiser(int nbCarte) { //déclaration des vecteurs vector <string> vLibelle; vector <string> vCouleur; if(nbCarte==32) { vLibelle.push_back("7"); vLibelle.push_back("8"); vLibelle.push_back("9"); vLibelle.push_back("10"); vLibelle.push_back("valet"); vLibelle.push_back("dame"); vLibelle.push_back("roi"); vLibelle.push_back("as"); } else { //plus de 32 fonctionnalités à developper } vCouleur.push_back("Coeur"); vCouleur.push_back("Trèfle"); vCouleur.push_back("Pique"); vCouleur.push_back("Carreau"); for(int noCouleur=0 ; noCouleur<4 ; noCouleur++) { for(int noLibelle=0 ; noLibelle<8 ; noLibelle++) { string laCouleur, leLibelle; laCouleur=vCouleur[noCouleur]; leLibelle=vLibelle[noLibelle]; vCartes.push_back(carte(vCouleur[noCouleur],vLibelle[noLibelle])); } } }
int main(){ SDL_Window* window = NULL; SDL_Renderer* ren = NULL; SDL_Event event; //Entier controllant l'affichage de la fenetre int ON = 1; //Initialisation //Ajouter la gestion de l'erreur SDL_Init(SDL_INIT_VIDEO); IMG_Init(IMG_INIT_PNG); TTF_Init(); int map01[13][13] = { {0,0,0,6,15,2,2,2,2,2,4,0,0}, {9,0,0,6,2,1,1,1,1,2,11,9,0}, {3,0,0,6,2,5,5,1,1,15,2,4,0}, {0,0,0,6,2,5,5,5,1,15,2,4,0}, {0,0,0,6,2,2,5,5,1,2,2,4,0}, {0,0,0,6,14,14,1,1,2,2,7,3,0}, {9,0,0,6,2,2,1,1,2,2,4,0,0}, {4,0,0,6,2,2,2,15,2,7,3,0,0}, {3,0,0,13,8,8,8,12,8,3,0,0,0}, {0,0,0,0,0,0,0,12,0,0,0,0,0}, {0,0,0,16,10,10,10,12,9,0,0,0,0}, {0,0,0,6,2,14,2,2,11,10,9,0,0}, {0,0,0,6,2,5,1,1,5,2,4,0,0}, }; //Génération de la fenêtre window = SDL_CreateWindow("TankRider : Level 00", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 900, 720, SDL_WINDOW_SHOWN); ren = SDL_CreateRenderer( window, 0, SDL_RENDERER_TARGETTEXTURE); //Initialisation de la position du curseur int MouseX = 0; int MouseY = 0; //Drapeau int Drapeau[2]={385,635}; //Ces 3 tab enregistrentles coords et le bouton qui est down //36 est un nombre quelconque, à redefinir en fonction des courte int xcible[36]; int ycible[36]; int d_on_tab[36]; //Nombre de fleche posée int nb=0; //Element de la boucle de dessin int nbj; //indice de la fleche selected int d_on ; first_components_of_the_background(ren); carte(ren,map01,Drapeau); int nb_fleche[9]={0,2,0,1,0,1,0,0,0}; maj_panneau(ren,nb_fleche); int xE = 220; int yE = 170 ; int setE=6; mvt_tank(ren, xE,yE, setE, 0); int x = 320; int y = 20; int set = 2; mvt_tank(ren,x,y,set,1); //tableau de direction int dx[9]={-5,0,5,-5,0,5,-5,0,5}; int dy[9]={5,5,5,0,0,0,-5,-5,-5}; //Missiles SDL_Surface *Missile = NULL; SDL_Surface *m_1 = IMG_Load("IMG/missile1.png"); int angles[] ={0,45,90,-45,0,135,-90,-135,180}; //explosions SDL_Surface *Explosion = NULL; SDL_Surface *e_1 = IMG_Load("IMG/case_explosion1.png"); SDL_Surface *e_2 = IMG_Load("IMG/case_explosion2.png"); SDL_Surface *e_3 = IMG_Load("IMG/case_explosion3.png"); SDL_Surface *e_4 = IMG_Load("IMG/case_explosion4.png"); SDL_Surface *e_5 = IMG_Load("IMG/case_explosion5.png"); SDL_Surface *e_6 = IMG_Load("IMG/case_explosion6.png"); SDL_Surface *e_7 = IMG_Load("IMG/case_explosion7.png"); SDL_Surface* explosions[7]= {e_1,e_2,e_3,e_4,e_5,e_6,e_7}; //coordonnée de missile int xmissile=0; int ymissile=0; SDL_RenderPresent(ren); int action = 0; while( ON == 1 ) { SDL_WaitEvent(&event); switch( event.type){ //Gestion de la fermeture case SDL_QUIT : ON = 0; break; case SDL_MOUSEMOTION : MouseX=event.motion.x; MouseY=event.motion.y; break; case SDL_MOUSEBUTTONDOWN: //detection de la fleche selected if(MouseX>731 && MouseX<879 && MouseY<229 && MouseY>81){ d_on = choix_direction(MouseX,MouseY); if(nb_fleche[d_on-1]>=0){ nb_fleche[d_on-1]=(nb_fleche[d_on-1])-1; maj_panneau(ren,nb_fleche); } } if (event.button.button == SDL_BUTTON_LEFT){ if(MouseX>731 && MouseX<879 && MouseY>531 && MouseY<579){//BOUTON START action = 1; } if(MouseX>731 && MouseX<879 && MouseY>601 && MouseY<649){//BOUTON RESET carte(ren,map01,Drapeau); nb_fleche[0]= 0; nb_fleche[1]= 2; nb_fleche[2]= 0; nb_fleche[3]= 1; nb_fleche[4]= 0; nb_fleche[5]= 1; nb_fleche[6]= 0; nb_fleche[7]= 0; nb_fleche[8]= 0; maj_panneau(ren,nb_fleche); mvt_tank(ren, xE,yE, setE, 0); x = 320; y = 20; set = 2; nb=0; mvt_tank(ren,x,y,set,1); SDL_RenderPresent(ren); } } break; case SDL_MOUSEBUTTONUP: if (event.button.button == SDL_BUTTON_LEFT){ if(MouseX<685 && MouseX>38 && MouseY< 685 && MouseY>38 ){ if(d_on!=5 ){ if((nb_fleche[d_on-1])>(-1)){ xcible[nb]= 35+50*(((MouseX+12)/50)-1); ycible[nb]= 35+50*(((MouseY+12)/50)-1); d_on_tab[nb]=d_on; d_on=5; small_direction (ren,xcible[nb],ycible[nb],d_on_tab[nb]); nb++; } } SDL_RenderPresent(ren); } } break; } while (action==1 ){ carte(ren,map01,Drapeau); mvt_tank(ren, 220,170, 6, 0); for(nbj = 0; nbj<nb;nbj++){ if(nb!=0){ small_direction (ren,xcible[nbj],ycible[nbj],d_on_tab[nbj]); } } x=x+dx[set-1]; y=y+dy[set-1]; action = evite_mer(window, x, y, map01); mvt_tank(ren, x ,y,set ,1); SDL_RenderPresent(ren); if((x==630 || x==15 || y==630 || y==15)){ //borne a verifier action=0; SDL_ShowSimpleMessageBox(0, "out", "Vous etes hors champs ", window); } for(nbj=0;nbj<nb;nbj++){ if((x+15)==xcible[nbj] && (y+15)==ycible[nbj]){ set= d_on_tab[nbj]; } } if((x+15)==Drapeau[0] && (y+15)==Drapeau[1]){ action=0; SDL_ShowSimpleMessageBox(0, "WIN", "niv1 terminer ", window); } if (attaque_ennemi(x, y, set, xE, yE, setE)){ Missile=rotozoomSurface(m_1,angles[setE-1], 1, 1); xmissile=xE; ymissile=yE; while(!(xmissile==x && ymissile==y)){ fire(ren,Missile,xmissile,ymissile); xmissile=xmissile+dx[setE-1]; ymissile=ymissile+dy[setE-1]; SDL_RenderPresent(ren); } xmissile = 2000; ymissile = 2000; int k; for(k=0;k<7;k++){ Explosion = explosions[6-k]; fire(ren,Explosion,x,y); SDL_RenderPresent(ren); usleep(75000); } SDL_ShowSimpleMessageBox(0, "HIT", "Vous etes mort", window); action=0; } } } SDL_DestroyRenderer(ren); SDL_DestroyWindow(window); IMG_Quit(); TTF_Quit(); SDL_Quit(); return 0; }