NasNas
An intuitive and beginner friendly 2D game framework for C++
InputsComponent.hpp
1 // Created by Modar Nasser on 17/08/2021.
2 
3 #pragma once
4 
5 #include <functional>
6 #include <map>
7 
8 #include <SFML/Window/Keyboard.hpp>
9 
10 namespace ns::ecs {
12  public:
13  void reset();
14 
15  void bind(sf::Keyboard::Key key, const std::function<void()>& function);
16  void onPress(sf::Keyboard::Key key, const std::function<void()>& function);
17  void onRelease(sf::Keyboard::Key key, const std::function<void()>& function);
18 
19  void enable();
20  void disable();
21 
22  void update();
23 
24  private:
25  bool m_enabled = true;
26  std::map<sf::Keyboard::Key, std::function<void()>> m_inputs;
27  std::map<sf::Keyboard::Key, std::function<void()>> m_onpress;
28  std::map<sf::Keyboard::Key, std::function<void()>> m_onrelease;
29  };
30 
31  using Inputs = InputsComponent;
32 
33 }
34 
35 
36