Esempio n. 1
0
void gestion_temps(Carte *pCarte, Temps *gTemps, Position *positionCerise, Gestion_image gImage,
                   SDL_Surface *ecran, Gestion_musique gMusique, short *pointsDeVie,
                   Monde *gSerpent,enum Niveau niveau_v, short *effacePomme)
{
    gTemps->tempsActuel = SDL_GetTicks();
    if ( gTemps->tempsActuel - gTemps->tempsPrecedent > niveau_v ) // si il y a 250 ms qui est ecoul� donc on peut pass�
    {
        // Si la valeur de positionCerise est diff�rente de -1 en x et y alors
        if(positionCerise->x != -1 && positionCerise->y != -1 && gSerpent->changementBonus == 99)
        {
            gTemps->bonusTempsRestante -= niveau_v; // on fais descendre de 1 le tempsRestant de l'affichage du bonus
        }
        else
        {
            gTemps->tempsRestantePomme -= niveau_v; // pour chaque difficult� le temps se r�duit diff�remment !
            // 255 compl�tement opaque | 0 compl�tement transparent ! | 10 000 / 40 = 255
            SDL_SetAlpha(gImage.pomme, SDL_SRCALPHA,gTemps->tempsRestantePomme / 40 ); // pour l'effacement de la  pomme au fur et � mesure

            if(gTemps->tempsRestantePomme < 1.0)
            {
                *effacePomme = 1; // pour que nous puissons effacer la pomme d�j� sur la carte
            }
        }
        gTemps->tempsTotalDeJeu++;
        deplacement_joueur(pCarte, ecran, pointsDeVie, gSerpent, gTemps, gMusique, positionCerise, gImage);
        gTemps->tempsPrecedent = gTemps->tempsActuel; // mise � jour du tempsPrecedent
    }
    else     // Si �a fait moins de 250ms depuis le dernier tour de boucle, on endort le programme le temps qu'il faut
    {
        SDL_Delay(niveau_v - (gTemps->tempsActuel - gTemps->tempsPrecedent));
    }
}
Esempio n. 2
0
/**
*\fn partie (void) 
*\brief lance les differente fonction utile au deroulement d'une partie
*/
int partie (int niveau) 

{
	int win = 0;
	int lose = 0;
	int i,j;
	
	for(i = 0; i < (escouade1.nb_perso)*2; i= i + 2){
		tab_pv[i] = i/2;
		tab_pv[i+1] = escouade1.perso[i/2].stat.HP;

	}
	init();
	horde1 = generer_horde(horde1,niveau);
	placement(escouade1,horde1);
	affichage();
	while(win == 0 && lose == 0){
		deplacement_joueur();
		attaque_allie();
		resolve_attaque();
		affichage();
		deplacement_ennemi();
		attaque_nemesis();
		resolve_attaque();
		affichage();
		win = 1;
		lose = 1;
		for(i = 1 ; i < N ; i++)
		{
			for(j = 1 ; j < M ; j++) 
			{
				if(mat[i][j] == 1){
					iallie = 1;
					while((tab_a[iallie] != i || tab_a[iallie+1] != j)&&(iallie < 20)){
						iallie = iallie + 3;
					}
					afficher_perso_uni(escouade1.perso[tab_a[iallie-1]]);
					printf("\n\n");
					lose = 0;
				}else if (mat[i][j] == 2){
					iennemi = 1;
					while((tab_e[iennemi] != i || tab_e[iennemi+1] != j)&&(iennemi < 20)){
						iennemi = iennemi + 3;
					}
					afficher_perso_uni(horde1.perso[tab_e[iennemi-1]]);
					printf("\n\n");
					win = 0;
				}
			}
		}
	}
	for(i = 0; i <(escouade1.nb_perso)*2; i = i + 2){
		escouade1.perso[tab_pv[i]].stat.HP = tab_pv[i+1];
	}
	system("clear");
	if (win == 1){
		printf("You Rock !!\n");
		liste_personnage = mise_a_jour_liste(escouade1,liste_personnage);
	}else if (lose == 1){
		printf("You Lose, try harder next time \n");
	}
	return(EXIT_SUCCESS);
}