Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

1

07.01.2011, 09:07

SDL JoyStick Abfrage

Sehr geehrtes Forum,
ich habe ein Problem mit der JoyStick abfrage in SDL.


In der Api wird ja ganz leicht erklärt wie man events abfängt, und wie ich ein JoyStick initialisiere weiß ich auch, es geht nur darum, dass ich bei meinen Optionen, von einem Spiel, wenn ich da auf Joystick konfigurieren gehe, soll der dort erst mal checken, ob ein Joystick vorhanden ist, wenn nicht, wird ein Dialog geöffnet, und man kann sich entscheiden das ganze zu wiederholen, und noch erneut zu checken ob das GamePad vorhanden ist, oder ob man das abbrechen möchte, so ist mein Code :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
  stick = SDL_JoystickOpen( 0 );
  while(stick==NULL)
  {
   int answer = MessageBox (NULL, "Es konnte kein GamePad/JoyStick auf ihrem PC gefunden werden.\nBitten prüfen Sie ob das Gerät mit Ihrem Computer verbunden ist.\nSoll die Konfiguration des JoySticks/GamePads wiederholt werden oder abgebrochen werden?","Fehler beim Konfigurieren des GamePads/JoySticks",MB_RETRYCANCEL);
   if(answer==1)
   {
    gpause = false;
    options.gps = old;
    break;
   }
   stick = SDL_JoystickOpen( 0 );
  }

gpause ist ein bool mit dem nach der Schleife gearbeitet wird.
options ist ein struct, und hat das Member gps, (GamePadPause) ein Integer, der speichert welcher Button auf dem Gamepad gedrückt werden soll, um das Spiel zu pausieren, und old ist der alte Wer (gps wird nämlich vor der Schleife auf null gesetzt.

stick ist, wie ihr euch sicherlich denken könnt ein SDL_Joystick *stick;

Ja und wenn ich das jetzt starte, kann ich auch auf abbrechen klicken, die Schleife wird nicht beendet, wieso?
Wenn ich das Joystick dann, wenn der Dialog erschienen ist, anschließe, geht das ebenso nicht, wenn ich dann auf wiederholen klicke.

Könnte einer von euch vielleicht sagen worans liegen könnte?

M.f.G. Developer_X
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

2

07.01.2011, 12:03

Ich habe den Code bisschen abgeändert, jetzt kann ich den Dialog wenigstens Abbrechen, ich habe herausgefunden, dass SDL während des Laufens des Programms nicht mehr checken ob vorhanden oder nicht ( ich meine das GamePad).

Das Problem ist trotzdem gelöst,
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl