Seminar Computergrafik mit GameEngines: EventQueue (inspiriert von https://gameprogrammingpatterns.com/event-queue.html)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
804 B

2 years ago
#pragma once
2 years ago
#include <iostream>
2 years ago
#include "Event.h"
2 years ago
template <typename EventType>
class Listener {
public:
virtual void accept(EventType *) {}
2 years ago
};
class InputListener : public Listener<InputEvent> {
public:
void accept(InputEvent * event) override;
protected:
2 years ago
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) {};
2 years ago
};
class GameListener : public Listener<GameEvent> {
public:
void accept(GameEvent * event) override;
protected:
virtual void OnCoinCollect(CoinCollectEvent * event) {};
virtual void OnDamage(DamageEvent * event) {};
2 years ago
};