Skip to content
Snippets Groups Projects
Commit 8456b885 authored by Lénaïg Le Moigne's avatar Lénaïg Le Moigne
Browse files
parents 8309939e d25b05a3
No related branches found
No related tags found
No related merge requests found
MAP1 10*16
MAP1 6 8
MFMMMFFPPF
PFFFFFFPPF
PFPPPFFPPF
PFPPPFFPPF
PFPPFFFPPF
PFMMMFFPPF
PFMFFFFPPF
PFMMPFFPPF
PFPPPFFPPF
PFPPFFPPFP
PFFPPFFPPF
PFFFMFFPPF
PFPMMFFPPF
PFMMMFFPPF
PFFFPFFPPF
PFPPPPFPPF
FFMMMF
FFMMMF
FFMMMF
FFMMMF
FFMMMF
FFMMMF
FFMMMF
FFMMMF
MAP2 10*16
MAP2 5 4
FFMMMFFPPF
PFFFFFFPPF
PFPPPFFPPF
PFPPPFFPPF
PFPPFFFPPF
PFMMMFFPPF
PFMFFFFPPF
PFMMPFFPPF
PFPPPFFPPF
PFPPFFPPFP
PFFPPFFPPF
PFFFMFFPPF
PFPMMFFPPF
PFMMMFFPPF
PFFFPFFPPF
PFPPPPFPPF
FFPPM
FFPPM
FFPPM
FFPPM
MAP3 10*16
MAP3 6 10
FFMMMFFPPF
PFFFFFFPPF
PFPPPFFPPF
PFPPPFFPPF
PFPPFFFPPF
PFMMMFFPPF
PFMFFFFPPF
PFMMPFFPPF
PFPPPFFPPF
PFPPFFPPFP
PFFPPFFPPF
PFFFMFFPPF
PFPMMFFPPF
PFMMMFFPPF
PFFFPFFPPF
PFPPPPFPPF
FFPFMP
FFPFMP
FFPFMP
FFPFMP
FFPFMP
FFPFMP
FFPFMP
FFPFMP
FFPFMP
FFPFMP
MAP4 10*16
MAP4 16 10
MPPFFPPPFMMPPFFP
PPFMMPPFFPPPFMMP
PFFPPPFMMPPFFPPP
FMMPPFFPPPFMMPPF
FPPPFMMPPFFPPPFM
MPPFFPPPEMMPPFFP
PPFMMEEEFPPPFMMP
PFFPPPEEMPPFFPPP
FMMPPFFPPPFMMPPF
FPPPFMMPPFFPPPFM
MAP5 10 16
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
MPPFFPPPFM
FFMMMFFPPF
PFFFFFFPPF
PFPPPFFPPF
PFPPPFFPPF
PFPPFFFPPF
PFMMMFFPPF
PFMFFFFPPF
PFMMPFFPPF
PFPPPFFPPF
PFPPFFPPFP
PFFPPFFPPF
PFFFMFFPPF
PFPMMFFPPF
PFMMMFFPPF
PFFFPFFPPF
PFPPPPFPPF
\ No newline at end of file
resources/case_brillante.bmp

15.2 KiB | W: | H:

resources/case_brillante.bmp

15.2 KiB | W: | H:

resources/case_brillante.bmp
resources/case_brillante.bmp
resources/case_brillante.bmp
resources/case_brillante.bmp
  • 2-up
  • Swipe
  • Onion skin
resources/continuer.bmp

6.85 KiB

resources/foret.bmp

15.2 KiB | W: | H:

resources/foret.bmp

15.2 KiB | W: | H:

resources/foret.bmp
resources/foret.bmp
resources/foret.bmp
resources/foret.bmp
  • 2-up
  • Swipe
  • Onion skin
resources/montagne.bmp

20.3 KiB | W: | H:

resources/montagne.bmp

15.2 KiB | W: | H:

resources/montagne.bmp
resources/montagne.bmp
resources/montagne.bmp
resources/montagne.bmp
  • 2-up
  • Swipe
  • Onion skin
resources/quitter.bmp

6.85 KiB

......@@ -16,9 +16,9 @@
*/
int main_SDL()
int main_SDL(char* Map)
{
int i,j;
int i,j,affichermenu;
SDL_Surface* ecran=NULL;
SDL_Event event;
SDL_Surface* guerrier=NULL;
......@@ -30,13 +30,18 @@ int main_SDL()
SDL_Surface* eau=NULL;
SDL_Surface* montagne=NULL;
SDL_Surface* foret=NULL;
SDL_Surface* bouton_continuer=NULL;
SDL_Surface* bouton_quitter=NULL;
SDL_Surface* Case_brillante=NULL;
SDL_Rect Position_Case[LARGEUR_CARTE*HAUTEUR_CARTE];
SDL_Rect Position_Perso[NB_PERSO];
SDL_Rect Position_Case_brillante;
SDL_Rect pos_bouton_continuer;
SDL_Rect pos_bouton_quitter;
int x_case_brillante;
int y_case_brillante;
int quitter=0;
affichermenu=0;
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
......@@ -53,6 +58,11 @@ int main_SDL()
SDL_WM_SetCaption("Elder Internal Ignition",NULL);
pos_bouton_quitter.x=(LARGEUR_CARTE*LARGEUR_CASE-LARGEUR_BOUTON)/2;
pos_bouton_continuer.x=(LARGEUR_CARTE*LARGEUR_CASE-LARGEUR_BOUTON)/2;
pos_bouton_quitter.y=(HAUTEUR_CARTE*HAUTEUR_CASE-HAUTEUR_BOUTON)/2+HAUTEUR_BOUTON;
pos_bouton_continuer.y=(HAUTEUR_CARTE*HAUTEUR_CASE-HAUTEUR_BOUTON)/2-HAUTEUR_BOUTON;
guerrier = SDL_LoadBMP("../resources/guerrier.bmp");
if (!guerrier)
{
......@@ -61,6 +71,20 @@ int main_SDL()
}
SDL_SetColorKey(guerrier, SDL_SRCCOLORKEY, SDL_MapRGB(guerrier->format, 0, 0, 255));
bouton_continuer = SDL_LoadBMP("../resources/continuer.bmp");
if (!bouton_continuer)
{
printf("Unable to load bitmap: %s\n", SDL_GetError());
return 1;
}
bouton_quitter = SDL_LoadBMP("../resources/quitter.bmp");
if (!bouton_continuer)
{
printf("Unable to load bitmap: %s\n", SDL_GetError());
return 1;
}
mage = SDL_LoadBMP("../resources/mage.bmp");
if (!mage)
{
......@@ -156,33 +180,62 @@ int main_SDL()
while(quitter==0)
{
SDL_WaitEvent(&event);
switch(event.type) /* Test du type d'vnement */
{
case SDL_QUIT: /* Si c'est un vnement de type "Quitter" */
quitter=1;
break;
case SDL_MOUSEBUTTONDOWN:
deplacement_personnage(event.button.x,event.button.y);
if(affichermenu==1){
switch(event.type) /* Test du type d'vnement */
{
case SDL_QUIT: /* Si c'est un vnement de type "Quitter" */
quitter=1;
break;
case SDL_MOUSEBUTTONDOWN:
if(pos_bouton_continuer.x<event.button.x&&event.button.x<pos_bouton_continuer.x+LARGEUR_BOUTON){
if(pos_bouton_continuer.y<event.button.y&&event.button.y<pos_bouton_continuer.x+HAUTEUR_BOUTON){
affichermenu=0;
}
if(pos_bouton_quitter.y<event.button.y&&event.button.y<pos_bouton_quitter.x+HAUTEUR_BOUTON){
quitter=1;
}
}
break;
case SDL_KEYDOWN:/* Si c'est un vnement de type "touche presse" */
switch(event.key.keysym.sym){
case SDLK_ESCAPE:
affichermenu=0;
break;
default:
quitter=0;
}
break;
case SDL_MOUSEMOTION:
if(event.motion.x<LARGEUR_CARTE*LARGEUR_CASE&&event.motion.y<HAUTEUR_CARTE*HAUTEUR_CASE)
{
x_case_brillante = get_position_case_x(deplacement_brillance(event.motion.x,event.motion.y));
y_case_brillante = get_position_case_y(deplacement_brillance(event.motion.x,event.motion.y));
}
}
}
else{
switch(event.type) /* Test du type d'vnement */
{
case SDL_QUIT: /* Si c'est un vnement de type "Quitter" */
quitter=1;
break;
case SDL_MOUSEBUTTONDOWN:
deplacement_personnage(event.button.x,event.button.y);
break;
case SDL_MOUSEMOTION:
if(event.motion.x<LARGEUR_CARTE*LARGEUR_CASE&&event.motion.y<HAUTEUR_CARTE*HAUTEUR_CASE)
{
x_case_brillante = get_position_case_x(deplacement_brillance(event.motion.x,event.motion.y));
y_case_brillante = get_position_case_y(deplacement_brillance(event.motion.x,event.motion.y));
}
break;
case SDL_KEYDOWN:/* Si c'est un vnement de type "touche presse" */
switch(event.key.keysym.sym){
case SDLK_n:
persosuivant();
break;
case SDLK_ESCAPE:
affichermenu=1;
break;
default:
quitter=0;
}
break;
case SDL_KEYDOWN:/* Si c'est un vnement de type "touche presse" */
switch(event.key.keysym.sym){
case SDLK_n:
persosuivant();
break;
case SDLK_ESCAPE:
quitter=1;
break;
default:
quitter=0;
}
break;
}
}
for(i=0;i<NB_PERSO;i++){
Position_Perso[i].x=get_position_perso_x(i);
......@@ -191,15 +244,37 @@ int main_SDL()
Position_Case_brillante.x=x_case_brillante;
Position_Case_brillante.y=y_case_brillante;
SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
for(i=0;i<LARGEUR_CARTE*HAUTEUR_CARTE;i++)
{
SDL_BlitSurface(plaine,NULL,ecran,&Position_Case[i]);
}
SDL_BlitSurface(Case_brillante,NULL,ecran,&Position_Case_brillante);
for(i=0;i<NB_PERSO;i++)
if(affichermenu==0)
{
SDL_BlitSurface(guerrier,NULL,ecran,&Position_Perso[i]);
for(i=0;i<LARGEUR_CARTE*HAUTEUR_CARTE;i++)
{
switch(Map[i])
{
case 80: //"P" en ASCII
SDL_BlitSurface(plaine,NULL,ecran,&Position_Case[i]);
break;
case 70: //"F" en ASCII
SDL_BlitSurface(foret,NULL,ecran,&Position_Case[i]);
break;
case 69: //"E" en ASCII
SDL_BlitSurface(eau,NULL,ecran,&Position_Case[i]);
break;
case 77: //"M" en ASCII
SDL_BlitSurface(montagne,NULL,ecran,&Position_Case[i]);
break;
}
}
SDL_BlitSurface(Case_brillante,NULL,ecran,&Position_Case_brillante);
for(i=0;i<NB_PERSO;i++)
{
SDL_BlitSurface(guerrier,NULL,ecran,&Position_Perso[i]);
}
}else{
SDL_BlitSurface(bouton_continuer,NULL,ecran,&pos_bouton_continuer);
SDL_BlitSurface(bouton_quitter,NULL,ecran,&pos_bouton_quitter);
}
SDL_Flip(ecran);
}
quitter=0;
......
......@@ -12,8 +12,10 @@
#define LARGEUR_CASE 53
#define HAUTEUR_CASE 71
#define NB_PERSO 3
#define HAUTEUR_BOUTON 20
#define LARGEUR_BOUTON 115
int main_SDL();
int main_SDL(char* Map);
#endif
......@@ -10,6 +10,12 @@
*/
char* ExtraireCarte(int numero)
{
return LireCarte("../resources/Maps.txt",numero);
}
/*!
* \fn Carte* LireCarte(int num)
* \brief La fonction recupere la n-ieme carte dans un fichier et renvoie un pointeur sur la carte cree
......@@ -18,51 +24,58 @@
*/
char* LireCarte(const char *filename, int num)
{
char char_num_map[2],char_nb_lignes[2]="",char_nb_colonnes[2]="";
int num_map = 0, nb_lignes = 0, nb_colonnes = 0, i=0, j=0, k=0;
char char_num_map[1],char_nb_lignes[2]="",char_nb_colonnes[2]="";
char char_actuel;
int num_map = 0, nb_lignes = 0, nb_colonnes = 0, i=0, j=0, k=0, taille_Tableau = 0;
FILE* file_map = NULL;
file_map = fopen(filename, "r");
fseek(file_map, 3, SEEK_SET);
(fgets(char_num_map,3,file_map));
num_map = atoi(char_num_map);
(fgets(char_nb_lignes,3,file_map));
nb_lignes = atoi(char_nb_lignes);
fseek(file_map, 1, SEEK_CUR);
(fgets(char_nb_colonnes,3,file_map));
nb_colonnes = atoi(char_nb_colonnes);
while(num_map < num)
fscanf(file_map,"%d %d %d", &num_map, &nb_lignes, &nb_colonnes); /*! Lecture du nom et de la taille de la premiere map */
fgetc(file_map);
fgetc(file_map);
while(num_map < num) /*! Descend jusqu' la prochaine map */
{
for(k=0; k<nb_colonnes+4; k++) /*! Descend jusqu' la prochaine map */
for(k=0; k<nb_colonnes; k++) /*! Descend jusqu' la prochaine map */
{
fseek(file_map,nb_lignes,SEEK_CUR);
fseek(file_map,nb_lignes+2,SEEK_CUR);
}
fgetc(file_map);
fgetc(file_map);
fseek(file_map, 3, SEEK_CUR);
(fgets(char_num_map,3,file_map));
num_map = atoi(char_num_map);
(fgets(char_nb_lignes,3,file_map));
nb_lignes = atoi(char_nb_lignes);
fseek(file_map, 1, SEEK_CUR);
(fgets(char_nb_colonnes,3,file_map));
nb_colonnes = atoi(char_nb_colonnes);
}
fseek(file_map, 4, SEEK_CUR);
fscanf(file_map,"%d %d %d", &num_map, &nb_lignes, &nb_colonnes); /*! Lecture du nom et de la taille de la map */
fgetc(file_map);
fgetc(file_map);
}
char * TableauCarte = NULL;
TableauCarte = malloc(nb_colonnes * nb_lignes * sizeof(char));
taille_Tableau = nb_colonnes*nb_lignes*sizeof(char);
TableauCarte = malloc(taille_Tableau);
for(i=0; i<nb_colonnes; i++)
{
for(j=0; j<=nb_lignes; j++)
for(j=0; j<nb_lignes; j++)
{
TableauCarte[nb_lignes*i+j]=fgetc(file_map);
char_actuel = fgetc(file_map);
TableauCarte[nb_lignes*i+j] = char_actuel;
}
fgetc(file_map);
}
/* Test Tableau
for(j=0; j<nb_lignes*nb_colonnes; j++)
{
printf("La valeur %d du tableau vaut : %c\n",j,TableauCarte[j]);
}
fclose(file_map);
*/
return TableauCarte;
}
......@@ -3,6 +3,8 @@
* \brief Fichier contenant les signatures des fonctions liees a la structure carte.
*/
char* ExtraireCarte(int numero);
char* LireCarte(const char *filename, int num);
#ifndef CARTE_H_INCLUDED
......
......@@ -10,7 +10,6 @@
int init_jeu(const char *filename){ /* cre les diffrents types de terrains, de classes et d'attaques en lisant dans un fichier */
FILE *fichier_init;
fichier_init=fopen(filename,"r");
if (!fichier_init==NULL)
{
......@@ -45,6 +44,15 @@ int init_jeu(const char *filename){ /* cr
strcat(fichier_text, fichier_temp);
Librairie_Terrains(fichier_text);
}
if(strcmp(nom,"Cartes")==0)
{
char fichier_text[50];
char fichier_temp[50];
strcpy(fichier_text,"../resources/");
strcpy(fichier_temp,roxml_get_content(roxml_get_attr(config_actuelle, "fichier", 0), NULL, 0, NULL));
strcat(fichier_text, fichier_temp);
char *Map_B = ExtraireCarte(2);
}
if(strcmp(nom,"Competences")==0)
{
/* Initialisation des comptences venir */
......@@ -58,7 +66,7 @@ int init_jeu(const char *filename){ /* cr
fprintf(stderr,"Erreur dans l'ouverture du fichier");
return 1;
}
return 0;
}
......@@ -67,18 +75,15 @@ int init_jeu(const char *filename){ /* cr
int main()
{
init_jeu("../resources/Init_jeu.xml");
main_SDL();
printf("La case choisie est : %c\n",LireCarte("../resources/Maps.txt",3)[10]);
char *Map_A = ExtraireCarte(4);
printf("Map en version texte : %s\n", Map_A);
main_SDL();
main_SDL(Map_A);
return 0;
......
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