Für diejenigen die meinen vorheriges Post nicht gelsen haben. Ich nutze Eclipse mit der C-Erweiterung und cygwin als Compiler.
Das Spiel läuft und ich war dann gleich so motiviert dass ich mich daran gemacht habe es zu erweitern. Ich möchte eine Joystick-Steuerung implementieren aber irgendwie nimmt der Compiler alles was mit SDL zu tun hat nicht mehr an.
hpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#ifndef JOYSTICK_HPP
#define JOYSTICK_HPP
#include <iostream>
using namespace std;
class CJoystick {
public:
bool Init (int DeviceIndex);
void Quit ();
private:
SDL_Joystick *m_pJoystick; // Zeiger auf den Joystick
};
#endif /*JOYSTICK_HPP*/
|
Seltsamerweise meckert der Compiler schon bei der Headerdatei. Die Zeile die ein SDL_Joystick anlegt behauptet folgendes
- expected `;' before '*' token
- ISO C++ forbids declaration of `SDL_Joystick' with no type
Hier mal noch die cpp mit der Definition (der Vollständigkeit halber). Hier gibts einige Fehlermeldungen, was ja logisch ist wenns schon im Header kracht.
Ach ja, Code Completition funktioniert mit der SDL - die nötigen Verzeichnisse und libs sind eingetragen
cpp
|
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
|
#include "Joystick.hpp"
/* Init
*
* Aufgabe: Den Joystickport öffnen und den Eventmodus setzen.
*
* Der Parameter gibt den Index an, welcher Joystick geöffnet werden soll.
* Die Abfrage, ob überhaupt Joysticks vorhanden sind muss für über SDL_NumJoysticks() geprüft werden.
*/
bool CJoystick::Init(int DeviceIndex)
{
// Joystickport öffnen
m_pJoystick = SDL_JoystickOpen(DeviceIndex);
if(m_pJoystick != NULL){
// Joysticks sollten über das Eventsystem ausgelsen werden
// Dieses wird hier aktiviert
SDL_JoystickEventState(SDL_ENABLE);
// Ein paar Ausgaben für den Test
cout << "Name des Joysticks: " << SDL_JoystickName(0) << endl;
}
else
cout << "Couldn't open Joystick " << DeviceIndex << endl;
}// Init
/* Quit
*
* Aufgabe: Joystickport wieder schließen.
*/
void CJoystick::Quit()
{
// Joystickport wieder schließen
if(m_pJoystick != NULL)
SDL_JoystickClose(m_pJoystick);
}// Quit
|
Ich habs gestern Nacht bis 1 Uhr versucht, aber keine Fehler/Lösung gefunden.
Danke