Skip to content
Snippets Groups Projects
Commit 6406319d authored by belkhiritaha's avatar belkhiritaha
Browse files

Merge branch 'player' of github.com:maberet/ProjetZZ1 into render

parents 416417da 1a874714
Branches
No related tags found
No related merge requests found
...@@ -55,7 +55,7 @@ listchainfire_t startFire(listchainfire_t listFire,int numberFire, int mapSize){ ...@@ -55,7 +55,7 @@ listchainfire_t startFire(listchainfire_t listFire,int numberFire, int mapSize){
xFire= rand()%mapSize; xFire= rand()%mapSize;
yFire= rand()%mapSize; yFire= rand()%mapSize;
printf("xf:%d,yf:%d\n",xFire,yFire); //printf("xf:%d,yf:%d\n",xFire,yFire);
fire.x= xFire; fire.x= xFire;
fire.y= yFire; fire.y= yFire;
fire.state=1; fire.state=1;
...@@ -132,7 +132,7 @@ void travelFire(listchainfire_t listFire){ ...@@ -132,7 +132,7 @@ void travelFire(listchainfire_t listFire){
listchainfire_t listTemporary=listFire; listchainfire_t listTemporary=listFire;
while(listTemporary!=NULL){ while(listTemporary!=NULL){
printf("x:%d,y:%d\n",(listTemporary->fire).x,(listTemporary->fire).y); //printf("x:%d,y:%d\n",(listTemporary->fire).x,(listTemporary->fire).y);
listTemporary=listTemporary->next; listTemporary=listTemporary->next;
} }
//freeListFire(listTemporary); //freeListFire(listTemporary);
...@@ -185,8 +185,8 @@ void nextFire(listchainfire_t listFire){ ...@@ -185,8 +185,8 @@ void nextFire(listchainfire_t listFire){
else if ((pMedium<=probability)&&(probability<pStrong)){(listTemporary->fire).state=STRONG;} else if ((pMedium<=probability)&&(probability<pStrong)){(listTemporary->fire).state=STRONG;}
else {(listTemporary->fire).state=SPREAD;} else {(listTemporary->fire).state=SPREAD;}
printf("%d %d\n", probability, state); //printf("%d %d\n", probability, state);
printf("%d %d %d %d\n", pDead, pSparkle, pMedium, pStrong); //printf("%d %d %d %d\n", pDead, pSparkle, pMedium, pStrong);
listTemporary=listTemporary->next; listTemporary=listTemporary->next;
} }
......
...@@ -12,6 +12,9 @@ void initPlayer(){ ...@@ -12,6 +12,9 @@ void initPlayer(){
player.currentWater = player.waterMax; player.currentWater = player.waterMax;
player.speed = 1; player.speed = 1;
player.isMoving = 0; player.isMoving = 0;
player.HPMax = 3;
player.currentHP = player.HPMax;
player.invisible = 0;
} }
int giveCaseBelowPosition(int x, int y){ int giveCaseBelowPosition(int x, int y){
...@@ -20,22 +23,45 @@ int giveCaseBelowPosition(int x, int y){ ...@@ -20,22 +23,45 @@ int giveCaseBelowPosition(int x, int y){
return map[y2][x2]; return map[y2][x2];
} }
int getPositionXInMap(int x){
int x2 = x/CELLSIZE;
return x2;
}
int getPositionYInMap(int y){
int y2 = y/CELLSIZE;
return y2;
}
int checkCollisionsTree(int dot1, int dot2){
int coll = 0;
if(dot1==1 || dot2==1){
coll = 1;
}
return coll;
}
int collisionsLeftPlayer(){ int collisionsLeftPlayer(){
int collision = 0; int collision = 0;
int dotTopLeft = giveCaseBelowPosition(player.x, player.y); int dotTopLeft = giveCaseBelowPosition(player.x, player.y);
int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h); int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h);
int fireTopLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y));
int fireDownLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y+player.h));
//collision window //collision window
if(player.x <= 0){ if(player.x <= 0){
collision = 1; collision = 1;
} }
//collision tree //collision tree
if(dotTopLeft==1 || dotDownLeft==1){ collision = checkCollisionsTree(dotTopLeft, dotDownLeft);
collision = 1;
}
//collision water //collision water
if(dotTopLeft==2 || dotDownLeft==2){ if(dotTopLeft==2 || dotDownLeft==2){
collision = 1; collision = 1;
} }
//collision fire
if((fireTopLeft==1 || fireDownLeft==1) && player.invisible==0){
player.currentHP = player.currentHP - 1;
player.invisible = 1;
}
return collision; return collision;
} }
...@@ -43,18 +69,23 @@ int collisionsRightPlayer(){ ...@@ -43,18 +69,23 @@ int collisionsRightPlayer(){
int collision = 0; int collision = 0;
int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y); int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y);
int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h); int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h);
int fireTopRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y));
int fireDownRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y+player.h));
//collision window //collision window
if(player.x + player.w >= MAPSIZE * CELLSIZE){ if(player.x + player.w >= MAPSIZE * CELLSIZE){
collision = 1; collision = 1;
} }
//collision tree //collision tree
if(dotTopRight==1 || dotDownRight==1){ collision = checkCollisionsTree(dotTopRight, dotDownRight);
collision = 1;
}
//collision water //collision water
if(dotTopRight==2 || dotDownRight==2){ if(dotTopRight==2 || dotDownRight==2){
collision = 1; collision = 1;
} }
//collision fire
if((fireTopRight==1 || fireDownRight==1) && player.invisible==0){
player.currentHP = player.currentHP - 1;
player.invisible = 1;
}
return collision; return collision;
} }
...@@ -62,6 +93,8 @@ int collisionsUpPlayer(){ ...@@ -62,6 +93,8 @@ int collisionsUpPlayer(){
int collision = 0; int collision = 0;
int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y); int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y);
int dotTopLeft = giveCaseBelowPosition(player.x, player.y); int dotTopLeft = giveCaseBelowPosition(player.x, player.y);
int fireTopRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y));
int fireTopLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y));
//collision window //collision window
if(player.y <= 0){ if(player.y <= 0){
collision = 1; collision = 1;
...@@ -74,6 +107,11 @@ int collisionsUpPlayer(){ ...@@ -74,6 +107,11 @@ int collisionsUpPlayer(){
if(dotTopRight==2 || dotTopLeft==2){ if(dotTopRight==2 || dotTopLeft==2){
collision = 1; collision = 1;
} }
//collision fire
if((fireTopRight==1 || fireTopLeft==1) && player.invisible==0){
player.currentHP = player.currentHP - 1;
player.invisible = 1;
}
return collision; return collision;
} }
...@@ -81,6 +119,8 @@ int collisionsDownPlayer(){ ...@@ -81,6 +119,8 @@ int collisionsDownPlayer(){
int collision = 0; int collision = 0;
int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h); int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h);
int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h); int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h);
int fireDownRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y+player.h));
int fireDownLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y+player.h));
//collision window //collision window
if(player.y + player.h >= MAPSIZE * CELLSIZE){ if(player.y + player.h >= MAPSIZE * CELLSIZE){
collision = 1; collision = 1;
...@@ -93,6 +133,11 @@ int collisionsDownPlayer(){ ...@@ -93,6 +133,11 @@ int collisionsDownPlayer(){
if(dotDownRight==2 || dotDownLeft==2){ if(dotDownRight==2 || dotDownLeft==2){
collision = 1; collision = 1;
} }
//collision fire
if((fireDownRight==1 || fireDownLeft==1) && player.invisible==0){
player.currentHP = player.currentHP - 1;
player.invisible = 1;
}
return collision; return collision;
} }
......
...@@ -19,6 +19,9 @@ typedef struct player{ ...@@ -19,6 +19,9 @@ typedef struct player{
int speed; int speed;
int isMoving; int isMoving;
int direction; int direction;
int HPMax;
int currentHP;
int invisible;
} player_t; } player_t;
extern player_t player; extern player_t player;
......
...@@ -250,7 +250,7 @@ void drawScore(){ ...@@ -250,7 +250,7 @@ void drawScore(){
SDL_RenderCopy(renderer, scoreTexture, NULL, &rect); SDL_RenderCopy(renderer, scoreTexture, NULL, &rect);
rect.y += rect.h; rect.y += rect.h;
char str[10]; char str[10];
sprintf(str, "%d", score); //sprintf(str, "%d", score);
SDL_Color textColor = {237,222,17}; SDL_Color textColor = {237,222,17};
SDL_Surface * surface = TTF_RenderText_Solid(robotoFont, str, textColor); SDL_Surface * surface = TTF_RenderText_Solid(robotoFont, str, textColor);
SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface);
...@@ -365,9 +365,9 @@ void mainLoop(){ ...@@ -365,9 +365,9 @@ void mainLoop(){
delta = (a - b); delta = (a - b);
if (delta > 1000/FPS_TO_GET){ if (delta > 1000/FPS_TO_GET){
timer += delta; timer += delta;
printf("timer : %f\n", timer/1000); //printf("timer : %f\n", timer/1000);
b = a; b = a;
printf("fps : %f", 1000/delta); //printf("fps : %f", 1000/delta);
switch (gameState){ switch (gameState){
case MENU: case MENU:
drawMenu(); drawMenu();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment