diff options
Diffstat (limited to 'mwe/events/src/main.cpp')
| -rw-r--r-- | mwe/events/src/main.cpp | 82 | 
1 files changed, 82 insertions, 0 deletions
| diff --git a/mwe/events/src/main.cpp b/mwe/events/src/main.cpp new file mode 100644 index 0000000..f7e0766 --- /dev/null +++ b/mwe/events/src/main.cpp @@ -0,0 +1,82 @@ +#include "customTypes.h" +#include "event.h" +#include "loopManager.h" +#include <SDL2/SDL.h> +#include <iostream> +#include <memory> +class PlayerDamagedEvent : public Event { +public: +	PlayerDamagedEvent(int damage, int playerID) +		: Event("PlayerDamaged"), damage(damage), playerID(playerID) {} + +	REGISTER_EVENT_TYPE(PlayerDamagedEvent); + +	int getDamage() const { return damage; } +	int getPlayerID() const { return playerID; } + +private: +	int damage; +	int playerID; +}; +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) { +	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; +	// Create an event handler for KeyPressedEvent +	// EventHandler<KeyPressedEvent> callback = [](const KeyPressedEvent& e) { +	//     onKeyPressed(e); +	// }; +	// custom event class poc +	subscribe<PlayerDamagedEvent>(onPlayerDamaged); +	triggerEvent(PlayerDamagedEvent(50, 1)); +	subscribe<KeyPressedEvent>(onKeyPressed, 1, false); +	subscribe<KeyPressedEvent>(onKeyPressed1, false); +	// 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; +// } |