diff options
| author | max-001 <maxsmits21@kpnmail.nl> | 2024-12-06 10:14:33 +0100 | 
|---|---|---|
| committer | max-001 <maxsmits21@kpnmail.nl> | 2024-12-06 10:14:33 +0100 | 
| commit | 42ecf9c1d0e3ed1f37f99a24f31241b68f978b28 (patch) | |
| tree | 6c6c6c3b3c13b2fe68653a4ba9a97e6955d56da5 /src/example | |
| parent | 93893dbe710d864d5865f361f9a8a8f8f85b94f6 (diff) | |
Added script to shutdown game (by throwing an exception and not catching it)
Diffstat (limited to 'src/example')
| -rw-r--r-- | src/example/AITest.cpp | 17 | 
1 files changed, 16 insertions, 1 deletions
diff --git a/src/example/AITest.cpp b/src/example/AITest.cpp index 841b195..91a529c 100644 --- a/src/example/AITest.cpp +++ b/src/example/AITest.cpp @@ -1,19 +1,33 @@  #include <SDL2/SDL_timer.h>  #include <chrono>  #include <crepe/api/AI.h> +#include <crepe/api/BehaviorScript.h>  #include <crepe/api/Camera.h>  #include <crepe/api/Color.h>  #include <crepe/api/GameObject.h>  #include <crepe/api/LoopManager.h>  #include <crepe/api/Scene.h> +#include <crepe/api/Script.h>  #include <crepe/api/Sprite.h>  #include <crepe/api/Texture.h> -#include <crepe/manager/ComponentManager.h>  #include <crepe/manager/Mediator.h>  using namespace crepe;  using namespace std; +class Script1 : public Script { +	bool shutdown(const ShutDownEvent & event) { +		// Very dirty way of shutting down the game +		throw "ShutDownEvent"; +		return true; +	} + +	void init() { +		subscribe<ShutDownEvent>( +			[this](const ShutDownEvent & ev) -> bool { return this->shutdown(ev); }); +	} +}; +  class Scene1 : public Scene {  public:  	void load_scene() override { @@ -30,6 +44,7 @@ public:  		game_object2.add_component<Camera>(Color::WHITE, ivec2{1080, 720}, vec2{1036, 780},  										   1.0f); +		game_object2.add_component<BehaviorScript>().set_script<Script1>();  	}  	string get_name() const override { return "Scene1"; }  |