add timeout bombe

This commit is contained in:
Mylloon 2022-01-02 16:48:59 +01:00
parent b46125c282
commit 7f6896b7a7
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -63,11 +63,13 @@ 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,
* temps écoulé depuis sa pose */
} perso_t; } perso_t;
/* Définition de nos deux joueurs */ /* Définition de nos deux joueurs */
perso_t _joueurA = { 0.f, 0.f, 0.f, -1 }; // à droite perso_t _joueurA = { 0.f, 0.f, 0.f, -1, 0 }; // à droite
perso_t _joueurB = { 0.f, 0.f, 6.f, -1 }; // à gauche perso_t _joueurB = { 0.f, 0.f, 6.f, -1, 0 }; // à gauche
/* Clavier virtuel */ /* Clavier virtuel */
enum { enum {
@ -318,14 +320,19 @@ 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
printf("Joueur A pose une bombe!\n"); // temp if(_joueurA.bombe == 0) {
_joueurA.bombe = (int)t + 1;
if(_debug) printf("Joueur A pose une bombe!\n");
_plateau[posJoueurA] = 6; _plateau[posJoueurA] = 6;
} else {
printf("bombe déjà posé il y a %d secondes\n", (int)(t - (_joueurA.bombe - 1)) / 1000);
}
} }
/* Affichage Debug */ /* Affichage Debug */
if(_debug) { if(_debug) {
printf("\n========== Joueur A ==========\n"); printf("\n========== Joueur A ==========\n");
printf(" li = %d, col = %d, idx = %d\n", (int)(zA + .5f), (int)(xA + .5f), _joueurA.position); printf(" li = %d, col = %d, idx = %d\n", (int)(zA + .5f), (int)(xA + .5f), _joueurA.position); // round avec cast int
printf(" zA=%f xA=%f\n", zA, xA); printf(" zA=%f xA=%f\n", zA, xA);
printf(" d=%d h=%d g=%d b=%d\n", posDroiteA, posHautA, posGaucheA, posBasA); printf(" d=%d h=%d g=%d b=%d\n", posDroiteA, posHautA, posGaucheA, posBasA);
} }
@ -377,14 +384,17 @@ 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
printf("Joueur B pose une bombe!\n"); // temp if(_joueurB.bombe == 0) {
_joueurB.bombe = 1;
if(_debug) printf("Joueur B pose une bombe!\n");
_plateau[posJoueurB] = 6; _plateau[posJoueurB] = 6;
} }
}
/* Affichage Debug */ /* Affichage Debug */
if(_debug) { if(_debug) {
printf("========== Joueur B ==========\n"); printf("========== Joueur B ==========\n");
printf(" li = %d, col = %d, idx = %d\n", (int)(zB + .5f), (int)(xB + .5f), _joueurB.position); printf(" li = %d, col = %d, idx = %d\n", (int)(zB + .5f), (int)(xB + .5f), _joueurB.position); // round avec cast int
printf(" zB=%f xB=%f\n", zB, xB); printf(" zB=%f xB=%f\n", zB, xB);
printf(" d=%d h=%d g=%d b=%d\n", posDroiteB, posHautB, posGaucheB, posBasB); printf(" d=%d h=%d g=%d b=%d\n", posDroiteB, posHautB, posGaucheB, posBasB);
printf("===============================\n"); printf("===============================\n");
@ -400,12 +410,12 @@ void idle(void) {
/*!\brief Fonction appelée à chaque display. */ /*!\brief Fonction appelée à chaque display. */
void draw(void) { void draw(void) {
vec4 couleurMur = {0.2, 0.2, 0.2, 1}, /* Gris */ vec4 couleurMur = { 0.2, 0.2, 0.2, 1}, /* Gris */
couleurJoueurA = {0.15, 0.5, 0.15, 1}, /* Vert */ couleurJoueurA = {0.15, 0.5, 0.15, 1}, /* Vert */
couleurJoueurB = {0.2, 0.2, 0.7, 1}, /* Bleu */ couleurJoueurB = { 0.2, 0.2, 0.7, 1}, /* Bleu */
couleurMurExterieur = {0.1, 0.1, 0.1, 1}, /* Gris foncé */ couleurMurExterieur = { 0.1, 0.1, 0.1, 1}, /* Gris foncé */
couleurBois = {0.6, 0.3, 0, 1}, /* Marron */ couleurBois = { 0.6, 0.3, 0, 1}, /* Marron */
couleurBombe = {1., 0, 0, 1}; /* Rouge */ couleurBombe = { 1, 0, 0, 1}; /* Rouge */
float model_view_matrix[16], projection_matrix[16], nmv[16]; float model_view_matrix[16], projection_matrix[16], nmv[16];