begin process at 2010 02 10 07:59:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

GESTION CLAVIER SDL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

GESTION CLAVIER SDL

dimanche 4 septembre 2005 à 11:41:18 | GESTION CLAVIER SDL

Batman60

voici un bout de code qui  sert à me déplacer dans une scène 3D opengl ,le problème c'est qu'il faut à chaque fois appuyer sur la touche pour ce déplacer
comment faire pour un déplacement continuel en laissant  les touches pressées
je débute avec la lib SDL
GLfloat z=4.0f;
GLfloat x=1.0f;
void handleKeyPress( SDL_keysym *keysym )
{
    switch ( keysym->sym )
 {
 case SDLK_ESCAPE:
     Quit( 0 );
     break;
 case SDLK_w:
        z+=4.0f;
        break;
    case SDLK_x:
        z-=4.0f;
        break;
    case SDLK_LEFT:
        x+=1.0f;
        break;
    case SDLK_RIGHT:
        x-=1.0f;
        break;                
 default:
     break;
 }
    return;
}
gluLookAt(x ,0.0,z  ,0.0,0.0,0.0,0.0,1.0,0.0);
MERCI

dimanche 4 septembre 2005 à 15:06:23 | Re : GESTION CLAVIER SDL

NeoUmbrella

Pour une gestion du clavier avec SDL je ferais comme ceci :

SDL_Event Event;
while(SDL_PollEvent (&Event))
{   
   switch(Event.type)
   {
      case SDL_KEYDOWN: 
         switch(Event.key.keysym.sym)
         {
            case SDLK_LEFT:
               // Deplacement vers la gauche
               break;
          }
    }
}

Puis pour un meilleur gameplay, lors de l'evenement SDL_KEYUP tu test si une autre touche est enfoncée avec SDL_GetKeyState(), comme ca tu as un déplacement continue.
lundi 5 septembre 2005 à 15:24:07 | Re : GESTION CLAVIER SDL

keil


utilise un tableau a 4 cases (haut bas gauche droite)
key pressed -> 1 dans la case correspondante
key released -> 0 dans la case correspondante

juste avant ton draw() appelle une fonction update()

update contient des test sur les touches enfoncées

if ( tableau[0] )
        z+=4.0f;
if ( tableau[1] )
         ...

etc
lundi 5 septembre 2005 à 21:32:41 | Re : GESTION CLAVIER SDL

Batman60

merci les gars entre temps on m'a montré cette solution ci-dessous qui marche impeccable

char intern_key[400];
void UpdateEvents()
{
 SDL_Event event;
 while(SDL_PollEvent(&event))
 {
  switch (event.type)
  {
  case SDL_KEYDOWN:
   intern_key[event.key.keysym.sym]=1;
   break;
  case SDL_KEYUP:
   intern_key[event.key.keysym.sym]=0;
   break;
              
  }
 }
}
 
int Key(int sdlcode)
{
 int ret=intern_key[sdlcode];
     
 return ret; 
}
puis dans la fonction main:
while(!Key(SDLK_ESCAPE))
    {
      UpdateEvents();
      if(Key(SDLK_LEFT))x+=0.01f;
      if(Key(SDLK_RIGHT))x-=0.01f;
      if(Key(SDLK_x))z+=0.01f;
      if(Key(SDLK_s))z-=0.01f;
      drawGLScene( );
      initGL( );                     
    }


Cette discussion est classée dans : case, break, sdl, 0f, sdlk


Répondre à ce message

Sujets en rapport avec ce message

Gros soucis SDL ...... argh [ par courjete ] Alors voila, je me met à la programmation en c++ et dans une volonté de tester mes connaissances, préparer des fonctions d'affichage, je cherche à fai SDL porbleme [ par fahdovski ] IL Y'A EXECUTION MAIS LE PC PLANTE IL DEVIENT TRES LENT, MAIS POURQUOI??????jE TRAVAILLE SUR CODE::BLOCKS SOUS LINUXAVANT CA MARCHAIS IMPEC QUESQUI C' pour que mes touches soient détectées immédiatement [ par snake57 ] Bonjour,j'ai un petit soucis avec la détection de touche. Je vous met le bout de code concerné plus bas pour que vous ayez une idée.Enfait je détecte Deplacement de plusieurs sprites à l'écran (SDL) [ par rasolofomanana ] Bonjour à tous, je débute en C et j'essaie de créer un programme où l'on peut déplacer plusieurs sprites à l'écran, par cases de 40px. Le problème es Eternel problème... [ par dayvid75014 ] Bonjour à tous, Voici un ptit bout de code, ayant pour but de récupérer un flux en héxa d'un fichier MPEG et d'en tirer des informations (en-tête, Keylogger probleme code [ par rebelattack ] bonjour,J'ai un probleme lorsque je veux compiler ce code. Je suis débutant, mais j'ai réunis plusieur code et çà doit etre la le probleme. donc lorsq Récupérer les événements sur une frame dans C++ via JNI [ par PleoX ] Bonjour,(J'espère avoir mis mon sujet dans le bon thème. J'ai pas trouvé de thème plus aproprié.)Je suis en train de créer une application multi-touch Violation d'accès mémoire [ par zoneart ] Bonjour,Je suis débutant et j'ai écris deux trois lignes de codes que j'aimerais vous soumettre car une erreur de violation d'accès mémoire survient l Projet qui a besoin d'aide [ par juicestyle ] Tous d'abord bonjours à tous, j'espér trouver de l'aide ici. Voila je commence le C et j'ai un projet en tête <'est un petit logiciel pour créer des p


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales