Skip to content
Snippets Groups Projects
Commit 34e02c9a authored by Montjoie Henri's avatar Montjoie Henri
Browse files

gestion des persos

parent 3a83b377
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,16 @@ int main_affichage()
return 0;
}
void perso_suivant(int *numPerso){
if (*numPerso==NB_PERSO) *numPerso=1;
else if (*numPerso==NB_PERSO*2) *numPerso=NB_PERSO+1;
else *numPerso++;
}
void actualiser_num_perso(int *numPerso){
if (*numPerso<=NB_PERSO) *numPerso=NB_PERSO+1;
else *numPerso=1;
}
/*!
* \fn int afficher_cartes_personnalisees()
......@@ -757,11 +767,12 @@ int affichage_carte()
break;
case SDL_MOUSEBUTTONDOWN:
if(event.button.y>pos_bouton1.y&&event.button.y<pos_bouton1.y+bouton1->h){
//nextPerso();
perso_suivant(&perso_select);
}
if(event.button.y>pos_bouton2.y&&event.button.y<pos_bouton2.y+bouton2->h){
//nextJoueur();
//fin_du_tour();
//nom_joueur= TTF_RenderText_Shaded(vieille_police, obtenirNomJoueur(), couleurBlanche, couleurNoire);
actualiser_num_perso(&perso_select);
}
if(event.button.x<LARGEUR_CARTE*LARGEUR_CASE){
//deplacement_personnage(event.button.x,event.button.y);
......@@ -839,6 +850,7 @@ int affichage_carte()
SDL_FreeSurface(nom_joueur);
SDL_FreeSurface(bouton1);
SDL_FreeSurface(bouton2);
//SDL_FreeSurface(PV);
TTF_CloseFont(vieille_police);
etat=FERMER;
......
......@@ -17,27 +17,6 @@
*/
Carte Carte_actuelle;
Personnage ListePersos[NB_PERSO];
int perso_actuel=0;
/*!
* \fn void init_controleur(SDL_Rect Position_Case[])
* \brief fonction du controleur appellée par l'affichage et qui initialise le moteur du jeu (création de la carte et des personnages)
*
* \param les coordonnées de toutes les cases
*/
void init_controleur(SDL_Rect Position_Case[])
{
int i;
for(i=0;i<LARGEUR_CARTE*HAUTEUR_CARTE;i++)
{
init_case(&Carte_actuelle[i],Position_Case[i].x,Position_Case[i].y,NULL);
}
for(i=0;i<NB_PERSO;i++)
set_personnage(&ListePersos[i],NULL);
}
/*!
* \fn int x_case_cliquee(int x_pixel, int y_pixel)
* \brief La fonction retourne la colonne d'une case à partir de sa position en pixels
......@@ -70,110 +49,3 @@ int y_case_cliquee(int x_pixel, int y_pixel)
}
return y_case;
}
/*!
* \fn void persosuivant()
* \brief La fonction permet de selectionner le personnage suivant
*/
void persosuivant(){
if(perso_actuel<NB_PERSO-1)
perso_actuel++;
else
perso_actuel=0;
}
/*!
* \fn int persoactuel()
* \brief La fonction retourne le numéro du personnage actuellement controlé
*/
int persoactuel(){
return perso_actuel;
}
/*!
* \fn void deplacement_personnage(int x, int y))
* \brief Cette fonction du controleur appelle la fonction du moteur permettant de déplacer le personnage selectionné
*
* \param les coordonnées (en pixels) de l'endroit ou l'utilisateur a cliqué
*/
void deplacement_personnage(int x, int y)
{
if(x<LARGEUR_CARTE*LARGEUR_CASE&&y<HAUTEUR_CARTE*HAUTEUR_CASE)
{
Case* case_cliquee = trouverCase(Carte_actuelle,x_case_cliquee(x,y),y_case_cliquee(x,y));
Personnage* perso = &ListePersos[perso_actuel];
deplacement_unitaire(perso, case_cliquee,HAUTEUR_CASE,LARGEUR_CASE);
}
}
/*!
* \fn Case* get_case_perso(int num)
* \brief donne la case sur laquelle est située un personnage
*
* \param le numéro d'un personnage
* \return un pointeur vers la case du personnage
*/
Case* get_case_perso(int num)
{
Personnage* perso = &ListePersos[num];
return getPosition(perso);
}
/*!
* \fn int get_position_perso_x(int num)
* \brief donne la coordonnée x en pixels d'un personnage
*
* \param le numéro d'un personnage
* \return la coordonnée x en pixels du personnage
*/
int get_position_perso_x(int num)
{
Case* case_perso = get_case_perso(num);
return get_x(case_perso);
}
/*!
* \fn int get_position_perso_y(int num)
* \brief donne la coordonnée y en pixels d'un personnage
*
* \param le numéro d'un personnage
* \return la coordonnée y en pixels du personnage
*/
int get_position_perso_y(int num)
{
Case* case_perso = get_case_perso(num);
return get_y(case_perso);
}
/*!
* \fn Case* deplacement_brillance(int x,int y)
* \brief La fonction retourne un pointeur vers la case de coordonnées x,y
*
* \param les coordonnées x et y d'une case (pas en pixels mais bien en colonne et ligne), ainsi que la carte utilisée
* \return un pointeur vers cette case
*/
Case* deplacement_brillance(int x,int y)
{
if(x<LARGEUR_CARTE*LARGEUR_CASE&&y<HAUTEUR_CARTE*HAUTEUR_CASE)
{
return trouverCase(Carte_actuelle,x_case_cliquee(x,y),y_case_cliquee(x,y));
}
return NULL;
}
/*!
* \fn int get_position_case_y(Case * Case)
* \brief retourne la coordonnée y d'une case
*
* \param un pointeur vers une case
* \return la coordonnée y de la case
*/
int get_position_case_y(Case * Case){
return get_y(Case);
}
/*!
* \fn int get_position_case_x(Case * Case)
* \brief retourne la coordonnée x d'une case
*
* \param un pointeur vers une case
* \return la coordonnée x de la case
*/
int get_position_case_x(Case * Case)
{
return get_x(Case);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment