Hi Leute,
ich habe bei meinem Plan Kapitel 12 zu erweitern dran gedacht, eine "Pause"-Funktion mit einzubauen.
Nun habe ich das so realisiert, dass ich in der Funktion "CGame::ProcessEvents ()" nach der Esc Abfrage
noch eine Abfrage eingebaut habe indem ich abfrage ob "p" gedrückt wurde. Wenn dies nun zutrift, dann
lasse ich eine Schleife laufen bis die Taste nicht mehr gedrückt ist.
Nun wenn ich es starte, dann läuft auch alles bis ich "p" drücke.
Nachdem ich "p" gedrückt habe bleibt das ganze Programm stehen und das auch wenn ich "p" ein
zweites mal drücke.
Hier mal der Code:
|
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
47
48
|
// ProcessEvents
//
// Aufgabe: Events bearbeiten
//
void CGame::ProcessEvents ()
{
SDL_Event Event;
// Gab es ein Event?
if (SDL_PollEvent (&Event))
{
// Ja, also schauen welches
switch (Event.type)
{
// Beenden?
case (SDL_QUIT):
{
m_bGameRun = false;
} break;
// Wurde eine Taste gedrückt?
case (SDL_KEYDOWN):
{
switch (Event.key.keysym.sym)
{
case (SDLK_ESCAPE):
{
// Ja, also Spiel beenden
m_bGameRun = false;
} break;
case (SDLK_p):
{
m_bLockP = true;
while (m_bLockP == true)
{
if (g_pFramework->KeyDown (SDLK_p) == false)
m_bLockP = false;
}
} break;
}
}
}
}
} // ProcessEvents
|