Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "input.h"
- std::vector<bool> Input::m_currentKeyboardKeyState(sf::Keyboard::KeyCount, false);
- std::vector<bool> Input::m_previousKeyboardKeyState(sf::Keyboard::KeyCount, false);
- std::vector<bool> Input::m_currentMouseButtonState(sf::Mouse::ButtonCount, false);
- std::vector<bool> Input::m_previousMouseButtonState(sf::Mouse::ButtonCount, false);
- sf::Vector2f Input::m_currentMousePosition(0, 0);
- sf::Vector2f Input::m_previousMousePosition(0, 0);
- void Input::update()
- {
- m_previousKeyboardKeyState = m_currentKeyboardKeyState;
- m_previousMouseButtonState = m_currentMouseButtonState;
- m_previousMousePosition = m_currentMousePosition;
- }
- void Input::handleEvent(sf::Event & e)
- {
- switch (e.type) {
- case sf::Event::EventType::KeyPressed:
- if (e.key.code != sf::Keyboard::Key::Unknown) {
- Input::m_currentKeyboardKeyState[e.key.code] = true;
- }
- break;
- case sf::Event::EventType::KeyReleased:
- if (e.key.code != sf::Keyboard::Key::Unknown) {
- Input::m_currentKeyboardKeyState[e.key.code] = false;
- }
- break;
- case sf::Event::EventType::MouseButtonPressed:
- Input::m_currentMouseButtonState[e.mouseButton.button] = true;
- break;
- case sf::Event::EventType::MouseButtonReleased:
- Input::m_currentMouseButtonState[e.mouseButton.button] = false;
- break;
- case sf::Event::EventType::MouseMoved:
- Input::m_currentMousePosition = sf::Vector2f(static_cast<float>(e.mouseMove.x), static_cast<float>(e.mouseMove.y));
- break;
- }
- }
- bool Input::isKeyDown(const sf::Keyboard::Key & key)
- {
- if (key < 0) {
- return false;
- }
- return m_currentKeyboardKeyState[key];
- }
- bool Input::isKeyPressed(const sf::Keyboard::Key & key)
- {
- if (key < 0) {
- return false;
- }
- return m_currentKeyboardKeyState[key] && !m_previousKeyboardKeyState[key];
- }
- bool Input::isKeyReleased(const sf::Keyboard::Key & key)
- {
- if (key < 0) {
- return false;
- }
- return !m_currentKeyboardKeyState[key] && m_previousKeyboardKeyState[key];
- }
- bool Input::isMouseButtonDown(const sf::Mouse::Button & key)
- {
- if (key < 0) {
- return false;
- }
- return m_currentMouseButtonState[key];
- }
- bool Input::isMouseButtonPressed(const sf::Mouse::Button & key)
- {
- if (key < 0) {
- return false;
- }
- return m_currentMouseButtonState[key] && !m_previousMouseButtonState[key];
- }
- bool Input::isMouseButtonReleased(const sf::Mouse::Button & key)
- {
- if (key < 0) {
- return false;
- }
- return !m_currentMouseButtonState[key] && m_previousMouseButtonState[key];
- }
- sf::Vector2f Input::getCurrentMousePosition()
- {
- return m_currentMousePosition;
- }
- sf::Vector2f Input::getPreviousMousePosition()
- {
- return m_previousMousePosition;
- }
- sf::Vector2f Input::getDeltaMousePosition()
- {
- return m_currentMousePosition - m_previousMousePosition;
- }
Add Comment
Please, Sign In to add comment