Programmer avec CODE::BLOCKS et sa Librairie SDL, ROBOTIQUE
Résolu/Fermé
poparnassus
Messages postés
426
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
Modifié par poparnassus le 21/09/2015 à 08:24
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - 18 avril 2016 à 14:55
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - 18 avril 2016 à 14:55
A voir également:
- Programmer avec CODE::BLOCKS et sa Librairie SDL, ROBOTIQUE
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Programmer sms - Guide
2 réponses
poparnassus
Messages postés
426
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
30
21 sept. 2015 à 11:43
21 sept. 2015 à 11:43
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <SDL/SDL.h>
int main(int argc, char **argv)
{
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0)
{
fprintf(stderr,"Erreur lors de l'initialisation de la SDL\n");
return EXIT_FAILURE;
}
SDL_Joystick *joystick = NULL; // on crée le joystick
int numJoystick = SDL_NumJoysticks(); // Compte le nombre de joysticks
printf("Vous avez %d joysticks sur cette machine\n",numJoystick);
if ( numJoystick >= 1 )
{
joystick = SDL_JoystickOpen(0); // on l'assigne au numéro 0
if (joystick == NULL)
{
fprintf(stderr,"Erreur pour ouvrir le premier joystick\n");
return EXIT_FAILURE;
}
SDL_JoystickEventState(SDL_ENABLE); //On valide les evenements de type Joystick
if ( event.type == SDL_JOYAXISMOTION )
{
// Mouvement d'un axe
// Nous devons donc utiliser le champ jaxis
printf("Mouvement d'un axe\n");
printf("%d est la nouvelle valeur de l'axe %d pour le joystick %d\n",event.jaxis.value,event.jaxis.axis,event.jaxis.which);
}
else if ( event.type == SDL_JOYBUTTONDOWN || event.type == SDL_JOYBUTTONUP )
{
// Bouton appuyé ou relâché
// Nous devons donc utiliser le champ jbutton
if ( event.jbutton.state == SDL_PRESSED )
{
printf("Appui sur le bouton %d du joystick %d\n",event.jbutton.button,event.jbutton.which);
}
else if ( event.jbutton.state == SDL_RELEASED )
{
printf("Relâchement sur le bouton %d du joystick %d\n",event.jbutton.button,event.jbutton.which);
}
}
else if ( event.type == SDL_JOYBALLMOTION )
{
// Mouvement de trackball
// Nous devons donc utiliser le champ jball
printf("Mouvement du trackball\n");
printf("La balle %d du joystick %d a bougé de %d;%d\n",event.jball.ball,event.jball.which,event.jball.xrel,event.jball.yrel);
}
else if ( event.type == SDL_JOYHATMOTION )
{
// Mouvement d'un chapeau
// Nous devons donc utiliser le champ jhat
printf("Mouvement du chapeau %d du joystick %d\n",event.jhat.hat,event.jhat.which);
if ( event.jhat.value == SDL_HAT_CENTERED )
{
printf("Retour position neutre\n");
}
if ( event.jhat.value == SDL_HAT_DOWN )
{
printf("Position bas\n");
}
if ( event.jhat.value == SDL_HAT_LEFT )
{
printf("Position gauche\n");
}
if ( event.jhat.value == SDL_HAT_RIGHT )
{
printf("Position droite\n");
}
if ( event.jhat.value == SDL_HAT_UP )
{
printf("Position haut\n");
}
}
}
//Fin du programme
SDL_JoystickClose(joystick);
SDL_Quit();
return EXIT_SUCCESS;
}
DEBUG:
||=== Build: Debug in 6wd_1 (compiler: GNU GCC Compiler) ===|
C:\Projet_C\6wd_1\main.cpp||In function 'int SDL_main(int, char**)':|
C:\Projet_C\6wd_1\main.cpp|28|error: 'event' was not declared in this scope|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
je comprends pas
#include <windows.h>
#include <stdio.h>
#include <SDL/SDL.h>
int main(int argc, char **argv)
{
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0)
{
fprintf(stderr,"Erreur lors de l'initialisation de la SDL\n");
return EXIT_FAILURE;
}
SDL_Joystick *joystick = NULL; // on crée le joystick
int numJoystick = SDL_NumJoysticks(); // Compte le nombre de joysticks
printf("Vous avez %d joysticks sur cette machine\n",numJoystick);
if ( numJoystick >= 1 )
{
joystick = SDL_JoystickOpen(0); // on l'assigne au numéro 0
if (joystick == NULL)
{
fprintf(stderr,"Erreur pour ouvrir le premier joystick\n");
return EXIT_FAILURE;
}
SDL_JoystickEventState(SDL_ENABLE); //On valide les evenements de type Joystick
if ( event.type == SDL_JOYAXISMOTION )
{
// Mouvement d'un axe
// Nous devons donc utiliser le champ jaxis
printf("Mouvement d'un axe\n");
printf("%d est la nouvelle valeur de l'axe %d pour le joystick %d\n",event.jaxis.value,event.jaxis.axis,event.jaxis.which);
}
else if ( event.type == SDL_JOYBUTTONDOWN || event.type == SDL_JOYBUTTONUP )
{
// Bouton appuyé ou relâché
// Nous devons donc utiliser le champ jbutton
if ( event.jbutton.state == SDL_PRESSED )
{
printf("Appui sur le bouton %d du joystick %d\n",event.jbutton.button,event.jbutton.which);
}
else if ( event.jbutton.state == SDL_RELEASED )
{
printf("Relâchement sur le bouton %d du joystick %d\n",event.jbutton.button,event.jbutton.which);
}
}
else if ( event.type == SDL_JOYBALLMOTION )
{
// Mouvement de trackball
// Nous devons donc utiliser le champ jball
printf("Mouvement du trackball\n");
printf("La balle %d du joystick %d a bougé de %d;%d\n",event.jball.ball,event.jball.which,event.jball.xrel,event.jball.yrel);
}
else if ( event.type == SDL_JOYHATMOTION )
{
// Mouvement d'un chapeau
// Nous devons donc utiliser le champ jhat
printf("Mouvement du chapeau %d du joystick %d\n",event.jhat.hat,event.jhat.which);
if ( event.jhat.value == SDL_HAT_CENTERED )
{
printf("Retour position neutre\n");
}
if ( event.jhat.value == SDL_HAT_DOWN )
{
printf("Position bas\n");
}
if ( event.jhat.value == SDL_HAT_LEFT )
{
printf("Position gauche\n");
}
if ( event.jhat.value == SDL_HAT_RIGHT )
{
printf("Position droite\n");
}
if ( event.jhat.value == SDL_HAT_UP )
{
printf("Position haut\n");
}
}
}
//Fin du programme
SDL_JoystickClose(joystick);
SDL_Quit();
return EXIT_SUCCESS;
}
DEBUG:
||=== Build: Debug in 6wd_1 (compiler: GNU GCC Compiler) ===|
C:\Projet_C\6wd_1\main.cpp||In function 'int SDL_main(int, char**)':|
C:\Projet_C\6wd_1\main.cpp|28|error: 'event' was not declared in this scope|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
je comprends pas
poparnassus
Messages postés
426
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
30
18 avril 2016 à 14:55
18 avril 2016 à 14:55
https://forums.commentcamarche.net/forum/affich-33386197-sdl2-code-block-gestion-evenement-creation-de-surface#p33417566
J'ai en partie réussi, voir le liens plus haut !
J'ai en partie réussi, voir le liens plus haut !