Hallo,
ich hab grad in dem Spiel in der SDL in Kapitel 12 von Heiko Kalista ein Menü geschrieben.
Hier zeige ich jetzt ersteimal den Codauschnitt der mir Probleme bereitet.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
if (SDL_PollEvent(&Event))
{
//Ja also schauen welches
switch (Event.type)
{
//Beenden
case (SDL_QUIT) :
{
MenüRun = false;
} break;
//Wurde eine Taste gedrückt
case (SDL_KEYDOWN) :
{
switch (Event.key.keysym.sym)
{
case (SDLK_ESCAPE) :
{
//Ja also Spiel beenden
MenüRun = false;
} break;
}
} break;
}
}
//Überschneiden sich RectCursor und RectPlay
if (CursorTipX > RectPlay.x && CursorTipX < RectPlay.x + RectPlay.w && CursorTipY > RectPlay.y && CursorTipY < RectPlay.y + RectPlay.h)
{
//Aktives Sprite rendern
SpritePlay->Render(1);
if (SDL_PollEvent(&Event))
{
//Ja also schauen welches
switch (Event.type)
{
//Wurde die Maus betätigt
case (SDL_MOUSEBUTTONDOWN) :
{
GameStart = true;
} break;
}
}
|
Wenn ich das Programm nun Ausführen will, Startet das Menü zwar ich kann aber nur durch Escape das Programm beenden. Wenn ich mit der Maus nun über Play fahrer rendert er zwar den richtigen Play Button es passiert aber nichts wenn ich auf ihn drücke.
Meine Frage ist jetzt ob der Nachrichtenspeicher vielleicht schon nach dem ersten benutzen von
SDL_PollEvent gelöscht wird oder ich ganz falsch liege. Außerdem würde ich gerne wissen wie ich dieses Problem lösen kann.
Ich hoffe auf Antworten.
Danke schonmal im voraus.