Frage zu Joystick mit SDL
-
Hallo
ich habe mir eine kleine Funktion geschrieben
die meinen Spieler bewegen soll, das Funktioniert auch nur nicht so wie ich will.
Sobald ich den Joystick nach oben drücke oder sonst wohin bewegt er sich aber nur solange bis
der Joystick am ende seiner Bewegungsfreiheit angekommen ist.
Der Spieler sollte sich so Bewegen wie bei einem Tastendruck, dies tut er aber nicht.
Hier der Codevoid CPlayer::ProcessMoving () { SDL_Event event; int xVel = 0; int yVel = 0; while (SDL_PollEvent(&event)) { // Kontrolliert ob es Nachrichten gibt switch (event.type) { // Exit wenn das Fenster geschlossen ist case SDL_QUIT: done = true; break; // Kontrolliert ob es einen Tastendruck gab case SDL_KEYDOWN: { // EXIT wenn escape gedrückt wurde if (event.key.keysym.sym == SDLK_ESCAPE) done = true; break; } case SDL_JOYBUTTONDOWN: if ( event.jbutton.button == 7 ) { done = true; } case SDL_JOYAXISMOTION: // ################################################################################## if( event.jaxis.which == 0 ) { //Hat die X Axe sich bewegt if( event.jaxis.axis == 0 ) { //Ist die X Achse neutral if( ( event.jaxis.value > -8000 ) && ( event.jaxis.value < 8000 ) ) { xVel = 0; } else { //Stellt den Mittelpunkt ein if( event.jaxis.value < 0 ) { xVel = -20; } else { xVel = 20; } } } else if( event.jaxis.axis == 1 ) { //IIst die Y Achse Neutral if( ( event.jaxis.value > -8000 ) && ( event.jaxis.value < 8000 ) ) { yVel = 0; } //wenn nicht else { //Stellt den Mittelpunkt ein if( event.jaxis.value < 0 ) { yVel = -20; } else { yVel = 20; } } } // ################################################################################## } // ende switch } // ende der Nachrichtenverarbeitung } m_fXPosPlayer1 += xVel; m_fYPosPlayer1 += yVel; } // ProcessMovingVieleicht hat ja jemand eine Idee ?
Gruß MacGyver
-
Hat sich erledigt
Habe den Fehler gefunden!