项目作者: johnBuffer

项目描述 :
SFML callbacks based events manager
高级语言: C++
项目地址: git://github.com/johnBuffer/SFML-EventManager.git
创建时间: 2019-03-24T08:23:26Z
项目社区:https://github.com/johnBuffer/SFML-EventManager

开源协议:

下载


SFML-EventManager

Little helper to allow callbacks based event management with SFML

Installation

1. Clone repo ❤️

2. Include header

  1. #include "event_manager.hpp"

Usage

1. Declare your callbacks

  1. // Instanciate an events manager
  2. sfev::EventManager evm(window);
  1. // Add a close callback
  2. evm.addEventCallback(sf::Event::EventType::Closed, [&](const sf::Event&) {window.close(); });

Example of Mouse and Keyboard events handling

  1. using cEvent = const sf::Event&;
  2. // Add Key event callback
  3. evm.addKeyPressedCallback(sf::Keyboard::A, [&](cEvent) {std::cout << "A Pressed" << std::endl; });
  4. evm.addKeyReleasedCallback(sf::Keyboard::A, [&](cEvent) {std::cout << "A released" << std::endl; });
  5. // Add Mouse button event callback
  6. evm.addMousePressedCallback(sf::Mouse::Left, [&](cEvent) {std::cout << "Mouse LEFT pressed" << std::endl; });
  7. evm.addMouseReleasedCallback(sf::Mouse::Left, [&](cEvent) {std::cout << "Mouse LEFT released" << std::endl; });
  8. // Add another Mouse button event callback
  9. evm.addMousePressedCallback(sf::Mouse::Right, [&](cEvent) {std::cout << "Mouse RIGHT pressed" << std::endl; });
  10. evm.addMouseReleasedCallback(sf::Mouse::Right, [&](cEvent) {std::cout << "Mouse RIGHT released" << std::endl; });

2. Enjoy clean events pooling loop

  1. while (window.isOpen())
  2. {
  3. // Clean and peaceful
  4. evm.processEvents();
  5. window.clear();
  6. ...
  7. window.display();
  8. }

Technical details

The callback is a std::function<void(const sf::Event& event)> so you can pass any callable object with this signature.