Hallo für mein Snake Game habe ich mir ein Highscore programmiert.
Leider hatte ich dabei immer getch() genutzt und dann mittels SDL_TTF die eingegebenen Zeichen auf dem Bildschirm auszugeben.
Nachdem ich nun die Konsole (#pragma linker console ...) auskommentiert habe, und somit nur noch das SDL_Fenster offen steht, werden die getch() Eingaben nicht mehr
berücksichtigt.
Sie werden ignoriert, vorher musste ich immer schnell die Konsole anklicken um einen Namen eingeben zu können.
Gibt es bei SDL_Event nicht einen Typ der mir die nötigen Ascii Zeichen (Eventuell hießen die anders - Unicode?) liefert ? also der genauso synonym wie getch() die Nummer einer Taste beim drücken liefert ?
Sowas wie in der Form:
while(SDL_PollEvent(&event)
if(event.type =SDL_KEYDOWN)
return event.type.key.keysym;
was ja synonym zu getch(); wäre
bei der Taste Enter würde der Rückgabewert 12 oder so lauten.
Ist da sowas in dem Typ versteckt ?
Gruß und Danke
Daedra
PS: Hier mal ein Auszug aus dem tatsächlichen Highscore
|
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
|
while (inputstat)
{
std::cout << "Input Initialisierung geht" << endl;
inputchar = _getch();
if (inputchar == 13)
break;
if (inputchar == 8 && mystream.str().length() != 0)
{
helpstream << mystream.str().erase(mystream.str().length() - 1, 1);
mystream.str("");
mystream << helpstream.str();
helpstream.str("");
TextInput->ClearText();
TextInput->SetStringContent(" ");
TextInput->RenderTextShaded();
TextInput->ShowText(100, 115);
TextInput->ClearText();
TextInput->RenderTextShaded();
TextInput->SetStringContent(mystream.str());
TextInput->RenderTextShaded();
TextInput->ShowText(100, 115);
}
else ...
|
EDIT:
LÖSUNG GEFUNDEN:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
SDL_Event myevent;
int run22 = 1;
SDL_EnableUNICODE(1);while (run22)
{
while (SDL_PollEvent(&myevent))
{
if (myevent.type==SDL_KEYDOWN)
cout << myevent.key.keysym.unicode<< endl;
}
}
|