SDL: MausMeinung
Über die Relevanz der Maus
BearbeitenJeder PC-Nutzer hat sie und niemand möchte sie mehr missen, die Maus! Sie revolutionierte das Arbeiten mit Computern und ohne sie gäbe es wohl nie grafische Oberflächen, und viele Spiele nutzen sie auch. So ist sie z.B. aus Strategiespielen nicht mehr wegzudenken und sogar bei Ego-Shootern gehört sie mittlerweile zum Standardeingabegerät neben der Tastatur. Genügend Gründe um uns auch mit ihr zu befassen. Doch ich kann jetzt schon aufheitern: Das Hantieren mit der Maus ist noch leichter als das mit dem Joystick, das kommt nämlich deshalb erst hiernach. Meiner Meinung nach ist die Maus sogar einfacher zu behandeln als die Tastatur, da die meisten ja eigentlich nur 2 Tasten und eine Kugel (bzw. heutzutage 5 Tasten und einen Sensor) besitzen. Beginnen wir aber mal wieder mit einem kleinen Beispiel:
Quellcode
Bearbeiten // ...
int mouseX, mouseY;
SDL_GetMouseState(&mouseX, &mouseY); // Schreibt die Koordinaten der Mausposition in die Variablen "mouseX" und "mouseY"
// ...
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_MOUSEBUTTONDOWN: // Eine Maustaste wurde gedrückt
printf("\nMaustaste: %d", event.button.button); // Welche Maustaste?
printf("\nPosition auf X-Achse: %d", event.button.x);
printf("\nPosition auf Y-Achse: %d", event.button.y);
break;
case SDL_MOUSEMOTION: // Die Maus wurde bewegt
// ...
break;
case SDL_MOUSEBUTTONUP: // Eine Maustaste wurde losgelassen
// ...
break;
//...
}
}
// ...
Erläuterungen
BearbeitenZu Beginn werden zwei Ganzzahl-Variablen deklariert, welche die beiden Koordination, welche die Position der Maus beschreiben, speichern sollen. Danach werden diese beiden Variablen initialisiert, indem die Funktion SDL_GetMouseState die Adressen der beiden übergeben bekommt.
Danach folgt eine Schleife, welche solange läuft, bis alle Events abgearbeitet sind. In dieser werden im speziellen mit einer switch-Anweisung auf Events mit der Maus eingegangen. Welches Event genau für was steht ist dank der Kommentare hoffentlich offensichtlich.