Gestion clavier bombe

This commit is contained in:
Mylloon 2022-01-02 03:14:43 +01:00
parent 9af82a8ba8
commit 2f0c65ec19
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -73,12 +73,14 @@ enum {
VK_UP, VK_UP,
VK_LEFT, VK_LEFT,
VK_DOWN, VK_DOWN,
VK_RETURN,
/* Joueur B */ /* Joueur B */
VK_d, VK_d,
VK_z, VK_z,
VK_q, VK_q,
VK_s, VK_s,
VK_SPACE,
/* Toujours à la fin */ /* Toujours à la fin */
VK_SIZEOF VK_SIZEOF
@ -204,7 +206,7 @@ void init(void) {
for(int j = 0; j < _grilleW; j++) { for(int j = 0; j < _grilleW; j++) {
int _case = i * _grilleH + j; int _case = i * _grilleH + j;
if(_plateau[_case] == 0) if(_plateau[_case] == 0)
if(rand() % 2) if(rand() % 3 == 0) // 1 chance sur 3
_plateau[_case] = 4; _plateau[_case] = 4;
} }
@ -292,6 +294,10 @@ void idle(void) {
if(_vkeyboard[VK_DOWN]) if(_vkeyboard[VK_DOWN])
if((_plateau[coorBasA] == 0 || _plateau[coorBasA] == 2) && (decalageLongueurA < decalageGB || decalageLongueurA > decalageDH)) // collision en bas du plateau if((_plateau[coorBasA] == 0 || _plateau[coorBasA] == 2) && (decalageLongueurA < decalageGB || decalageLongueurA > decalageDH)) // collision en bas du plateau
_joueurA.z += vitesse * dt; _joueurA.z += vitesse * dt;
if(_vkeyboard[VK_RETURN]) {
_vkeyboard[VK_RETURN] = 0;
printf("Joueur A pose une bombe");
}
/* Affichage Debug */ /* Affichage Debug */
if(_debug) { if(_debug) {
@ -339,6 +345,10 @@ void idle(void) {
if(_vkeyboard[VK_s]) if(_vkeyboard[VK_s])
if((_plateau[coorBasB] == 0 || _plateau[coorBasB] == 3) && (decalageLongueurB < decalageGB || decalageLongueurB > decalageDH)) // collision en bas du plateau if((_plateau[coorBasB] == 0 || _plateau[coorBasB] == 3) && (decalageLongueurB < decalageGB || decalageLongueurB > decalageDH)) // collision en bas du plateau
_joueurB.z += vitesse * dt; _joueurB.z += vitesse * dt;
if(_vkeyboard[VK_SPACE]) {
_vkeyboard[VK_SPACE] = 0;
printf("Joueur B pose une bombe");
}
/* Affichage Debug */ /* Affichage Debug */
if(_debug) { if(_debug) {
@ -448,8 +458,7 @@ void draw(void) {
/*!\brief Intercepte l'événement clavier pour modifier les options (à l'appuie d'une touche). */ /*!\brief Intercepte l'événement clavier pour modifier les options (à l'appuie d'une touche). */
void keyd(int keycode) { void keyd(int keycode) {
switch(keycode) { switch(keycode) {
/* 'v' utiliser la sync Verticale */ case GL4DK_v: // 'v' utiliser la sync Verticale
case GL4DK_v:
_use_vsync = !_use_vsync; _use_vsync = !_use_vsync;
if(_use_vsync) if(_use_vsync)
SDL_GL_SetSwapInterval(1); SDL_GL_SetSwapInterval(1);
@ -457,45 +466,52 @@ void keyd(int keycode) {
SDL_GL_SetSwapInterval(0); SDL_GL_SetSwapInterval(0);
break; break;
/* 'h' afficher ou non les infos de debug */ case GL4DK_h: // 'h' afficher ou non les infos de debug
case GL4DK_h:
_debug = !_debug; _debug = !_debug;
break; break;
/* Joueur A */ /* Joueur A */
case GL4DK_RIGHT: case GL4DK_RIGHT: // droite
_vkeyboard[VK_RIGHT] = 1; _vkeyboard[VK_RIGHT] = 1;
break; break;
case GL4DK_UP: case GL4DK_UP: // haut
_vkeyboard[VK_UP] = 1; _vkeyboard[VK_UP] = 1;
break; break;
case GL4DK_LEFT: case GL4DK_LEFT: // gauche
_vkeyboard[VK_LEFT] = 1; _vkeyboard[VK_LEFT] = 1;
break; break;
case GL4DK_DOWN: case GL4DK_DOWN: // bas
_vkeyboard[VK_DOWN] = 1; _vkeyboard[VK_DOWN] = 1;
break; break;
case GL4DK_RETURN: // pose de bombe
_vkeyboard[VK_RETURN] = 1;
break;
/* Joueur B */ /* Joueur B */
case GL4DK_d: case GL4DK_d: // droite
_vkeyboard[VK_d] = 1; _vkeyboard[VK_d] = 1;
break; break;
case GL4DK_z: case GL4DK_z: // haut
_vkeyboard[VK_z] = 1; _vkeyboard[VK_z] = 1;
break; break;
case GL4DK_q: case GL4DK_q: // gauche
_vkeyboard[VK_q] = 1; _vkeyboard[VK_q] = 1;
break; break;
case GL4DK_s: case GL4DK_s: // bas
_vkeyboard[VK_s] = 1; _vkeyboard[VK_s] = 1;
break; break;
case GL4DK_SPACE: // pose de bombe
_vkeyboard[VK_SPACE] = 1;
break;
/* Par défaut on ne fais rien */ /* Par défaut on ne fais rien */
default: break; default: break;
} }