Ich habe jetzt mein erstes eigenes SDL-Spiel (obwohl Test-Anwendung es besser trifft) in die Wege geleitet. Mein Ziel ist, dass man die Spielfigur mit einem Mouseklick auf den Bildschirm lenken kann. Dafür braucht es natürlich eine abfrage der Maus, die ich nach etwas googeln so gestaltet habe:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
void CPlayer::CheckMouseState()
{
if (SDL_BUTTON(SDL_BUTTON_LEFT))
{
for (int x = 0; x <= 800; x++)
{
for (int y = 0; y <= 600; y++)
{
if (SDL_GetMouseState (&x, &y))
{
m_fXPosWanted = static_cast<float> (x);
m_fYPosWanted = static_cast<float> (y);
}
}
}
}
}
|
m_fPosWanted stellt die angestrebte Position dar, die in der ProcessMoving()-Funktion angelenkt wird. Allerding stürzt das Programm ab, sobald ich es starte. Mein Verdacht ist, dass die große Schleife das Programm abstürzen lässt. Andererseits habe ich auch keine bessere Möglichkeit gefunden, eine Mausabfrage zu gestalten. Ist die SDL womöglich gar nicht zur-Maussteuerung designt? Oder liegt der Fehler woanders, was ich mir nicht vorstellen kann, da ich nichts im Quellcode ansonsten geändert haben (Vorher lief die Bewegung per Tatstatur ab, da funktionierte alles.)
Danke für euer Interesse
PS: Habt ihr nen besseren Namen für die Zielposition? XPosWanted klingt ziemlich dämlich xD