diff options
author | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-10-25 20:57:31 +0200 |
---|---|---|
committer | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-10-25 20:57:31 +0200 |
commit | ebd163e3aacac74df1772d5bd794d2691918d324 (patch) | |
tree | 7c71dfd6afa29a777018e5c804dff15c2a0f6ec2 /mwe/events/src/main.cpp | |
parent | b5e83d076f356c6d01b7bbc1f033db4850356c0d (diff) |
collision event added, multiple callbacks working, id trigger working
Diffstat (limited to 'mwe/events/src/main.cpp')
-rw-r--r-- | mwe/events/src/main.cpp | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/mwe/events/src/main.cpp b/mwe/events/src/main.cpp index 3940c60..21f2dbf 100644 --- a/mwe/events/src/main.cpp +++ b/mwe/events/src/main.cpp @@ -3,7 +3,7 @@ #include <memory> #include "loopManager.h" #include "event.h" - +#include "customTypes.h" class PlayerDamagedEvent : public Event { public: PlayerDamagedEvent(int damage, int playerID) @@ -13,7 +13,7 @@ public: int getDamage() const { return damage; } int getPlayerID() const { return playerID; } - + private: int damage; int playerID; @@ -22,10 +22,24 @@ void onPlayerDamaged(const PlayerDamagedEvent& e) { std::cout << "Player " << e.getPlayerID() << " took " << e.getDamage() << " damage." << std::endl; } +void onKeyPressed1(const KeyPressedEvent& e) +{ + int keyCode = e.getKeyCode(); + fprintf(stderr,"first function KeyCode %d\n",keyCode); +} void onKeyPressed(const KeyPressedEvent& e) { - const int keyCode = e.getKeyCode(); - fprintf(stderr,"KeyCode %d\n",keyCode); + int keyCode = e.getKeyCode(); + fprintf(stderr,"second function KeyCode %d\n",keyCode); +} +void CollisionHandler(const CollisionEvent& e){ + std::cout << "collision betwee object id: "<< e.getCollisionData().objectIdA << " and id: " << e.getCollisionData().objectIdB << std::endl; +} +void testCollisionEvent() { + Collision testCollision(1, 2, {3, 4}, {5, 6}, 7.8f); + subscribe<CollisionEvent>(CollisionHandler,1); + // EventHandler<PlayerDamagedEvent> + triggerEvent(CollisionEvent(testCollision), 1); } int main(int argc, char* args[]) { LoopManager gameLoop; @@ -34,17 +48,34 @@ int main(int argc, char* args[]) { // onKeyPressed(e); // }; // custom event class poc - EventHandler<PlayerDamagedEvent> playerDamagedHandler = onPlayerDamaged; - subscribe<PlayerDamagedEvent>(playerDamagedHandler); - + subscribe<PlayerDamagedEvent>(onPlayerDamaged); triggerEvent(PlayerDamagedEvent(50, 1)); - //EventHandler<KeyPressedEvent> callback = onKeyPressed; - //subscribe<KeyPressedEvent>(callback,false); - std::unique_ptr<Event> anotherKeyPressEvent = std::make_unique<KeyPressedEvent>(65); - queueEvent(std::move(anotherKeyPressEvent)); - triggerEvent(KeyPressedEvent(42)); + subscribe<KeyPressedEvent>(onKeyPressed,1,false); + subscribe<KeyPressedEvent>(onKeyPressed1,false); + // std::unique_ptr<Event> anotherKeyPressEvent = std::make_unique<KeyPressedEvent>(65); + // queueEvent(std::move(anotherKeyPressEvent)); + triggerEvent(KeyPressedEvent(42), 1); + EventManager::getInstance().dispatchEvents(); + //collision event call + testCollisionEvent(); gameLoop.setup(); gameLoop.loop(); return 0; } +// void collisionUpdate(){ +// int count; +// //iedere collision +// for (int i = 0; i < count; i++) +// { +// //trigger object 1 +// //triger object 2 +// triggerEvent(CollisionEvent(1,2),1); +// triggerEvent(CollisionEvent(1,2),2); +// } + +// } +// int main(){ + +// return 0; +// } |