#pragma once #include #include "Event.h" template class Listener { public: virtual void accept(EventType *) {} }; class InputListener : public Listener { public: void accept(InputEvent * event) override; protected: virtual void mousePressed(MouseEvent *) {}; virtual void mouseReleased(MouseEvent *) {}; virtual void mouseDoubleClicked(MouseEvent *) {}; virtual void mouseMoved(MouseEvent *) {}; virtual void keyPressed(KeyEvent * e) {}; virtual void keyReleased(KeyEvent * e) {}; virtual void mouseWheel(WheelEvent * e) {}; }; class GameListener : public Listener { public: void accept(GameEvent * event) override; protected: virtual void OnCoinCollect(CoinCollectEvent * event) {}; virtual void OnDamage(DamageEvent * event) {}; };