Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "InputHandler.h"
- InputHandler* InputHandler::s_pInstance= 0;
- void InputHandler::initialiseJoysticks()
- {
- if(SDL_WasInit(SDL_INIT_JOYSTICK) == 0)
- {
- SDL_InitSubSystem(SDL_INIT_JOYSTICK);
- }
- if(SDL_NumJoysticks() > 0)
- {
- for(int i = 0; i < SDL_NumJoysticks(); i++)
- {
- SDL_Joystick* joy = SDL_JoystickOpen(i);
- if(SDL_JoystickOpen(i) == 1)
- {
- m_joysticks.push_back(joy);
- }
- else
- {
- std::cout << SDL_GetError();
- }
- }
- SDL_JoystickEventState(SDL_ENABLE);
- m_bjoysticksInitialised = true;
- std::cout<< "Initialised " << m_joysticks.size() <<
- "joystick(s)";
- }
- else
- {
- m_bjoysticksInitialised = false;
- }
- }
- void InputHandler::clean()
- {
- if(m_bjoysticksInitialised)
- {
- for(unsigned int i = 0; i < SDL_NumJoysticks(); i++)
- {
- SDL_JoystickClose(m_joysticks[i]);
- }
- }
- }
- void InputHandler::update()
- {
- SDL_Event event;
- while(SDL_PollEvent(&event))
- {
- if(event.type == SDL_QUIT)
- {
- TheGame::Instance()->quit();
- }
- if(event.type == SDL_JOYAXISMOTION)
- {
- int whichOne = event.jaxis.which;
- //left stick move left or right
- if(event.jaxis.axis == 0)
- {
- if(event.jaxis.value > m_joystickDeadZone)
- {
- m_joystickValues[whichOne].first->setX(1);
- }
- else if(event.jaxis.value < -m_joystickDeadZone)
- {
- m_joystickValues[whichOne].first->setX(-1);
- }
- else
- {
- m_joystickValues[whichOne].first->setX(0);
- }
- }
- // left stick move up or down
- if(event.jaxis == 1)
- {
- if(event.jaxis.value > m_joystickDeadzone)
- {
- m_joystickValues[whichOne].first.setY(1);
- }
- else if(event.jaxis.value < -m_joystickDeadZone)
- {
- m_joystickValues[whichOne].first->setY(-1);
- }
- else
- {
- m_joystickValues[whichOne].first->setY(-1);
- }
- }
- //right stick move left or right
- if(event.jaxis.axis == 3)
- {
- if(event.jaxis.value > m_joystickDeadZone)
- {
- m_joystickValues[whichOne].second->setX(1);
- }
- else if(event.jaxis.value < -m_joystickDeadZone)
- {
- m_joystickValues[whichOne].second->setX(-1);
- }
- else
- {
- m_joystickValues[whichOne].second->setX(0);
- }
- }
- //right stick move up or down
- if(event.jaxis.axis == 4)
- {
- if(event.jaxis.value > m_joystickDeadZone)
- {
- m_joystickValues[whichOne].second->setY(1);
- }
- else if(event.jaxis.value < -m_joystickDeadZone)
- {
- m_joystickValues[whichOne].second->setY(-1);
- }
- else
- {
- m_joystickValues[whichOne].second->setY(0);
- }
- }
- }
- }
- }
- int InputHandler::xvalue(int joy, int stick)
- {
- if(m_joystickValues.size() > 0)
- {
- if(stick == 1)
- {
- return m_joystickValues[joy].first->getX();
- }
- else if(stick == 2)
- {
- return m_joystickValues[joy].second->getX();
- }
- }
- return 0;
- }
- int InputHandler::yvalue(int joy, int stick)
- {
- if(m_joystickValues.size() > 0)
- {
- if(stick == 1)
- {
- return m_joystickValues[joy].first->getX();
- }
- else if(stick == 2)
- {
- return m_joystickValues[joy].second->getY();
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement