Пример #1
0
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()*/
Пример #2
0
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]));
        }
    }
}
Пример #3
0
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;
}