bomb getting bigger with time
This commit is contained in:
parent
a6f9156be5
commit
49c4c3896f
1 changed files with 15 additions and 17 deletions
32
window.c
32
window.c
|
@ -64,7 +64,7 @@ typedef struct perso_t {
|
||||||
int position; /* Position dans la grille.
|
int position; /* Position dans la grille.
|
||||||
* Permet d'éviter aux joueurs
|
* Permet d'éviter aux joueurs
|
||||||
* de se rentrer dedans */
|
* de se rentrer dedans */
|
||||||
int bombe; /* si une bombe est placé par le joueur,
|
double bombe; /* si une bombe est placé par le joueur,
|
||||||
* temps écoulé depuis sa pose */
|
* temps écoulé depuis sa pose */
|
||||||
int bombePos; /* Position de la bombe */
|
int bombePos; /* Position de la bombe */
|
||||||
} perso_t;
|
} perso_t;
|
||||||
|
@ -323,14 +323,14 @@ void idle(void) {
|
||||||
if(_vkeyboard[VK_RETURN]) {
|
if(_vkeyboard[VK_RETURN]) {
|
||||||
_vkeyboard[VK_RETURN] = 0; // on évite de spam la pose de bombe
|
_vkeyboard[VK_RETURN] = 0; // on évite de spam la pose de bombe
|
||||||
if(_joueurA.bombe == 0) {
|
if(_joueurA.bombe == 0) {
|
||||||
_joueurA.bombe = (int)t + 1;
|
_joueurA.bombe = t + 1;
|
||||||
_joueurA.bombePos = posJoueurA;
|
_joueurA.bombePos = posJoueurA;
|
||||||
if(_debug) printf("Joueur A pose une bombe!\n");
|
if(_debug) printf("Joueur A pose une bombe!\n");
|
||||||
_plateau[posJoueurA] = 6;
|
_plateau[posJoueurA] = 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((int)(t - (_joueurA.bombe - 1)) / 1000 > 3) { // quand la bombe doit explosé
|
if((int)(t - (_joueurA.bombe - 1)) / 1000 >= 3) { // quand la bombe doit explosé
|
||||||
_joueurA.bombe = 0; // remet le timer à 0
|
_joueurA.bombe = 0; // remet le timer à 0
|
||||||
_plateau[_joueurA.bombePos] = 0; // vide le plateau de la bombe
|
_plateau[_joueurA.bombePos] = 0; // vide le plateau de la bombe
|
||||||
_joueurA.bombePos = -1; // supprime l'ancienne location de la bombe
|
_joueurA.bombePos = -1; // supprime l'ancienne location de la bombe
|
||||||
|
@ -392,14 +392,14 @@ void idle(void) {
|
||||||
if(_vkeyboard[VK_SPACE]) {
|
if(_vkeyboard[VK_SPACE]) {
|
||||||
_vkeyboard[VK_SPACE] = 0; // on évite de spam la pose de bombe
|
_vkeyboard[VK_SPACE] = 0; // on évite de spam la pose de bombe
|
||||||
if(_joueurB.bombe == 0) {
|
if(_joueurB.bombe == 0) {
|
||||||
_joueurB.bombe = (int)t + 1;
|
_joueurB.bombe = t + 1;
|
||||||
_joueurB.bombePos = posJoueurB;
|
_joueurB.bombePos = posJoueurB;
|
||||||
if(_debug) printf("Joueur B pose une bombe!\n");
|
if(_debug) printf("Joueur B pose une bombe!\n");
|
||||||
_plateau[posJoueurB] = 7;
|
_plateau[posJoueurB] = 7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((int)(t - (_joueurB.bombe - 1)) / 1000 > 3) { // quand la bombe doit explosé
|
if((int)(t - (_joueurB.bombe - 1)) / 1000 >= 3) { // quand la bombe doit explosé
|
||||||
_joueurB.bombe = 0; // remet le timer à 0
|
_joueurB.bombe = 0; // remet le timer à 0
|
||||||
_plateau[_joueurB.bombePos] = 0; // vide le plateau de la bombe
|
_plateau[_joueurB.bombePos] = 0; // vide le plateau de la bombe
|
||||||
_joueurB.bombePos = -1; // supprime l'ancienne location de la bombe
|
_joueurB.bombePos = -1; // supprime l'ancienne location de la bombe
|
||||||
|
@ -495,36 +495,34 @@ void draw(void) {
|
||||||
}
|
}
|
||||||
/* Bombe A */
|
/* Bombe A */
|
||||||
if(_plateau[i * _grilleW + j] == 6) {
|
if(_plateau[i * _grilleW + j] == 6) {
|
||||||
int temps = (int)(t - (_joueurA.bombe - 1)) / 1000;
|
double temps = (t - (_joueurA.bombe - 1)) / 1000;
|
||||||
if(temps <= 1) {
|
_sphere->dcolor = couleurBombeN; // avant 1s
|
||||||
_sphere->dcolor = couleurBombeN;
|
if((int)temps >= 1) // avant 2s
|
||||||
} else if(temps <= 2) {
|
|
||||||
_sphere->dcolor = couleurBombeO;
|
_sphere->dcolor = couleurBombeO;
|
||||||
} else
|
if((int)temps >= 2) // avant 3s
|
||||||
_sphere->dcolor = couleurBombeR;
|
_sphere->dcolor = couleurBombeR;
|
||||||
/* copie model_view_matrix dans nmv */
|
/* copie model_view_matrix dans nmv */
|
||||||
memcpy(nmv, model_view_matrix, sizeof(nmv));
|
memcpy(nmv, model_view_matrix, sizeof(nmv));
|
||||||
|
|
||||||
/* pour convertir les posdonnées i, j de la grille en x, z du monde */
|
/* pour convertir les posdonnées i, j de la grille en x, z du monde */
|
||||||
translate(nmv, _cubeSize * j + cX, 0.f, _cubeSize * i + cZ);
|
translate(nmv, _cubeSize * j + cX, 0.f, _cubeSize * i + cZ);
|
||||||
scale(nmv, _cubeSize / 3.f, _cubeSize / 3.f, _cubeSize / 3.f);
|
scale(nmv, _cubeSize / 3.f + temps, _cubeSize / 3.f + temps, _cubeSize / 3.f + temps);
|
||||||
transform_n_rasterize(_sphere, nmv, projection_matrix);
|
transform_n_rasterize(_sphere, nmv, projection_matrix);
|
||||||
}
|
}
|
||||||
/* Bombe B */
|
/* Bombe B */
|
||||||
if(_plateau[i * _grilleW + j] == 7) {
|
if(_plateau[i * _grilleW + j] == 7) {
|
||||||
int temps = (int)(t - (_joueurB.bombe - 1)) / 1000;
|
double temps = (t - (_joueurB.bombe - 1)) / 1000;
|
||||||
if(temps <= 1) {
|
_sphere->dcolor = couleurBombeN; // avant 1s
|
||||||
_sphere->dcolor = couleurBombeN;
|
if((int)temps >= 1) // avant 2s
|
||||||
} else if(temps <= 2) {
|
|
||||||
_sphere->dcolor = couleurBombeO;
|
_sphere->dcolor = couleurBombeO;
|
||||||
} else
|
if((int)temps >= 2) // avant 3s
|
||||||
_sphere->dcolor = couleurBombeR;
|
_sphere->dcolor = couleurBombeR;
|
||||||
/* copie model_view_matrix dans nmv */
|
/* copie model_view_matrix dans nmv */
|
||||||
memcpy(nmv, model_view_matrix, sizeof(nmv));
|
memcpy(nmv, model_view_matrix, sizeof(nmv));
|
||||||
|
|
||||||
/* pour convertir les posdonnées i, j de la grille en x, z du monde */
|
/* pour convertir les posdonnées i, j de la grille en x, z du monde */
|
||||||
translate(nmv, _cubeSize * j + cX, 0.f, _cubeSize * i + cZ);
|
translate(nmv, _cubeSize * j + cX, 0.f, _cubeSize * i + cZ);
|
||||||
scale(nmv, _cubeSize / 3.f, _cubeSize / 3.f, _cubeSize / 3.f);
|
scale(nmv, _cubeSize / 3.f + temps, _cubeSize / 3.f + temps, _cubeSize / 3.f + temps);
|
||||||
transform_n_rasterize(_sphere, nmv, projection_matrix);
|
transform_n_rasterize(_sphere, nmv, projection_matrix);
|
||||||
}
|
}
|
||||||
/* Test voir la position des joueurs dans la grille */
|
/* Test voir la position des joueurs dans la grille */
|
||||||
|
|
Reference in a new issue