|
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
#include "Framework.hpp"
// Init
//
// Aufgabe: Framework initialisieren
//
bool CFramework::Init (int ScreenWidth, int ScreenHeight,
int ColorDepth, bool bFullscreen)
{
// Alle Systeme der SDL initialisieren
if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1 )
{
cout << "SDL konnte nicht initialisiert werden!" << endl;
cout << "Fehlermeldung: " << SDL_GetError () << endl;
Quit ();
return (false);
}
// Vollbild oder Fenstermodus einstellen
if (bFullscreen == true)
{
m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
SDL_SWSURFACE | SDL_DOUBLEBUF |
SDL_FULLSCREEN);
}
else
{
m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
SDL_HWSURFACE | SDL_DOUBLEBUF);
}
// Prüfen, ob alles funktioniert hat
if (m_pScreen == NULL)
{
cout << "Videomodus konnte nicht gesetzt werden!" << endl;
cout << "Fehlermeldung: " << SDL_GetError () << endl;
Quit ();
return (false);
}
// Zeiger auf internes Array für Tastaturstatus ermitteln
m_pKeystate = SDL_GetKeyState (NULL);
// Alles ging glatt, also true zurückliefern
return (true);
} // Init
// Quit
//
// Aufgabe: Framework (SDL) beenden
//
void CFramework::Quit ()
{
// SDL beenden
SDL_Quit ();
} // Quit
// Update
//
// Aufgabe: Timer und Keyboardstatus updaten
//
void CFramework::Update ()
{
// Timer updaten
g_pTimer->Update ();
// Tastaturstatus ermitteln
SDL_PumpEvents ();
} // Update
// Keydown
//
// Aufgabe: Tastendruck abfragen
//
bool CFramework::KeyDown (int Key_ID)
{
// Prüfen, ob Taste gedrückt ist
return (m_pKeystate[Key_ID] ? true : false);
} // KeyDown
// Clear
//
// Aufgabe: Buffer löschen
//
void CFramework::Clear ()
{
// Buffer (Surface) mit Hintergrundfarbe füllen
SDL_FillRect (m_pScreen, NULL,
SDL_MapRGB (m_pScreen->format, 0, 0, 0));
} // Clear
// Flip
//
// Aufgabe: Surface umschalten (flippen)
//
void CFramework::Flip ()
{
// Surface umschalten
SDL_Flip (m_pScreen);
} // Flip
|
Das ist der Originalcode des Buches.
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler (aktiv) E0020 Der Bezeichner ""SDL_SetVideoMode"" ist nicht definiert.
Fehler (aktiv) E0020 Der Bezeichner ""SDL_DOUBLEBUF"" ist nicht definiert. SDL_Game
Fehler (aktiv) E0020 Der Bezeichner ""SDL_FULLSCREEN"" ist nicht definiert. SDL_Game
Fehler (aktiv) E0020 Der Bezeichner ""SDL_SetVideoMode"" ist nicht definiert. SDL_Game
Fehler (aktiv) E0020 Der Bezeichner ""SDL_HWSURFACE"" ist nicht definiert. SDL_Game
Fehler (aktiv) E0020 Der Bezeichner ""SDL_DOUBLEBUF"" ist nicht definiert. SDL_Game
Fehler (aktiv) E0020 Der Bezeichner ""SDL_GetKeyState"" ist nicht definiert. SDL_Game
Fehler (aktiv) E0020 Der Bezeichner ""SDL_Flip"" ist nicht definiert. SDL_Game