Hallo schon wieder eine Frage,
ich hab mir für das Spiel aus der SDL eine Grafik die Zahlen darstellt angelegt. Mit diesen lass ich mir oben links im Spiel den Score anzeigen.
Dabei hab ich ja wie ihr unten im Quelltext seht einen integer in einen string konvertiert. In diesem string gehe ich dann mit einem iterator alle Buchstaben ab und verzweige dann entsprechend auf die jeweilige Grafik.
Dieses verfahren funktioniert auch super ich wollte jetzt nur noch mal nachfragen ob es nicht zu umständlich ist und ob es einfachere Lösungen dafür gibt.
Hier der Quellcode
|
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
|
//LogikScoreboard
//Aufgabe: Jede einzelne Zahl des Scoreboard abchecken
void CGame::LogikScoreboard()
{
int counter = 0;
//Score in einen string konvertieren
ostringstream Str;
Str << Score;
string ScoreString(Str.str());
string::iterator It;
for (It = ScoreString.begin(); It < ScoreString.end(); It++)
{
RenderScoreboard(It, static_cast<float> (counter));
counter++;
}
} //LogikScoreboard
//RenderScoreboard
//Aufgabe: Die Zahlen des Scoreboards Ausgeben
void CGame::RenderScoreboard(string::iterator It, float fcounter)
{
switch (*It)
{
//Zahl gleich 0
case ('0'):
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(0);
} break;
//Zahl gleich 1
case ('1') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(1);
} break;
//Zahl gleich 2
case ('2') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(2);
} break;
//Zahl gleich 3
case ('3') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(3);
} break;
//Zahl gleich 4
case ('4') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(4);
} break;
//Zahl gleich 5
case ('5') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(5);
} break;
//Zahl gleich 6
case ('6') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(6);
} break;
//Zahl gleich 7
case ('7') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(7);
} break;
//Zahl gleich 8
case ('8') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(8);
} break;
//Zahl gleich 9
case ('9') :
{
m_pSpriteNumbers->SetPos(0 + m_pSpriteNumbers->GetFrameRect().w * fcounter + 5, 5);
m_pSpriteNumbers->Render(9);
} break;
}
} //RenderScoreboard
|
Danke fürs durchlesen ich hoffe auf antwort.