Hab noch ne Funktion gefunden.
int SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, Uint32 mask);
Mit SDL_PeepEvents hol ich die Events raus und mit den flag SDL_PEEKEVENT wird nichts gelöscht.
Als Rückgabe wert liefert er die Anzahl der Events.
Und da nichts gelöscht wird gehe ich davon aus das die Anzahl gleich bleibt.
Jetzt war ich mir aber unsicher was ich bei numevents für ein parameter nehmen soll.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
void updateInput(){
SDL_PumpEvents();
}
bool getPressKey(SDLKey key){
SDL_Event event;
int num = SDL_PeepEvents(&event,1,SDL_PEEKEVENT,SDL_ALLEVENTS);
int i = 0;
while(i <= num){
if(event.key.keysym.sym == key){
if(event.key.state == SDL_PRESSED)
return true;
else
return false;
}
SDL_PeepEvents(&event,1,SDL_PEEKEVENT,SDL_ALLEVENTS);
i++;
}
return false;
}
|
Aber die Funktion funktionirt nicht, wenn ich was abfrage kommt false dabei raus.