diff options
Diffstat (limited to 'src/example')
| -rw-r--r-- | src/example/AITest.cpp | 86 | ||||
| -rw-r--r-- | src/example/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/example/rendering_particle.cpp | 18 | ||||
| -rw-r--r-- | src/example/savemgr.cpp | 44 | 
4 files changed, 95 insertions, 55 deletions
diff --git a/src/example/AITest.cpp b/src/example/AITest.cpp new file mode 100644 index 0000000..f4efc9f --- /dev/null +++ b/src/example/AITest.cpp @@ -0,0 +1,86 @@ +#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/Rigidbody.h> +#include <crepe/api/Scene.h> +#include <crepe/api/Script.h> +#include <crepe/api/Sprite.h> +#include <crepe/api/Texture.h> +#include <crepe/manager/Mediator.h> +#include <crepe/types.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; +	} + +	bool mousemove(const MouseMoveEvent & event) { +		/*RefVector<AI> aivec = this->get_components<AI>(); +		AI & ai = aivec.front().get(); +		ai.flee_target +			= vec2{static_cast<float>(event.mouse_x), static_cast<float>(event.mouse_y)};*/ +		return true; +	} + +	void init() { +		subscribe<ShutDownEvent>( +			[this](const ShutDownEvent & ev) -> bool { return this->shutdown(ev); }); +		subscribe<MouseMoveEvent>( +			[this](const MouseMoveEvent & ev) -> bool { return this->mousemove(ev); }); +	} +}; + +class Scene1 : public Scene { +public: +	void load_scene() override { +		Mediator & mediator = this->mediator; +		ComponentManager & mgr = mediator.component_manager; + +		GameObject game_object1 = mgr.new_object("", "", vec2{0, 0}, 0, 1); +		GameObject game_object2 = mgr.new_object("", "", vec2{0, 0}, 0, 1); + +		Texture img = Texture("asset/texture/test_ap43.png"); +		game_object1.add_component<Sprite>(img, Sprite::Data{ +													.color = Color::MAGENTA, +													.flip = Sprite::FlipSettings{false, false}, +													.sorting_in_layer = 1, +													.order_in_layer = 1, +													.size = {0, 195}, +												}); +		AI & ai = game_object1.add_component<AI>(3000); +		// ai.arrive_on(); +		// ai.flee_on(); +		ai.path_follow_on(); +		ai.make_oval_path(500, 1000, {0, -1000}, 1.5708, true); +		ai.make_oval_path(1000, 500, {0, 500}, 4.7124, false); +		game_object1.add_component<Rigidbody>(Rigidbody::Data{ +			.mass = 0.1f, +			.max_linear_velocity = {40, 40}, +		}); +		game_object1.add_component<BehaviorScript>().set_script<Script1>(); + +		game_object2.add_component<Camera>(ivec2{1080, 720}, vec2{5000, 5000}, +										   Camera::Data{ +											   .bg_color = Color::WHITE, +											   .zoom = 1, +										   }); +	} + +	string get_name() const override { return "Scene1"; } +}; + +int main() { +	LoopManager engine; +	engine.add_scene<Scene1>(); +	engine.start(); + +	return 0; +} diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt index 73fc512..187ed46 100644 --- a/src/example/CMakeLists.txt +++ b/src/example/CMakeLists.txt @@ -16,7 +16,7 @@ function(add_example target_name)  	add_dependencies(examples ${target_name})  endfunction() -add_example(savemgr)  add_example(rendering_particle)  add_example(game)  add_example(button) +add_example(AITest) diff --git a/src/example/rendering_particle.cpp b/src/example/rendering_particle.cpp index 29d475d..bd4ef95 100644 --- a/src/example/rendering_particle.cpp +++ b/src/example/rendering_particle.cpp @@ -1,3 +1,4 @@ +#include "api/Asset.h"  #include <crepe/Component.h>  #include <crepe/api/Animator.h>  #include <crepe/api/Camera.h> @@ -7,11 +8,11 @@  #include <crepe/api/ParticleEmitter.h>  #include <crepe/api/Rigidbody.h>  #include <crepe/api/Sprite.h> -#include <crepe/api/Texture.h>  #include <crepe/api/Transform.h>  #include <crepe/manager/ComponentManager.h>  #include <crepe/manager/Mediator.h>  #include <crepe/types.h> +#include <iostream>  using namespace crepe;  using namespace std; @@ -41,13 +42,15 @@ using namespace std;  class TestScene : public Scene {  public:  	void load_scene() { + +		cout << "TestScene" << endl;  		Mediator & mediator = this->mediator;  		ComponentManager & mgr = mediator.component_manager;  		GameObject game_object = mgr.new_object("", "", vec2{0, 0}, 0, 1);  		Color color(255, 255, 255, 255); -		auto img = Texture("asset/spritesheet/pokemon_spritesheet.png"); +		Asset img{"asset/spritesheet/spritesheet_test.png"};  		Sprite & test_sprite = game_object.add_component<Sprite>(  			img, Sprite::Data{ @@ -57,16 +60,11 @@ public:  					 .order_in_layer = 2,  					 .size = {0, 100},  					 .angle_offset = 0, -					 .position_offset = {100, 0}, +					 .position_offset = {0, 0},  				 }); -		auto & anim = game_object.add_component<Animator>(test_sprite, 4, 4, -														  Animator::Data{ -															  .fps = 1, -															  .looping = false, -														  }); -		anim.set_anim(2); -		anim.active = false; +		//auto & anim = game_object.add_component<Animator>(test_sprite,ivec2{32, 64}, uvec2{4,1}, Animator::Data{}); +		//anim.set_anim(0);  		auto & cam = game_object.add_component<Camera>(ivec2{1280, 720}, vec2{400, 400},  													   Camera::Data{ diff --git a/src/example/savemgr.cpp b/src/example/savemgr.cpp deleted file mode 100644 index 65c4a34..0000000 --- a/src/example/savemgr.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/** \file - *  - * Standalone example for usage of the save manager - */ - -#include <cassert> -#include <crepe/api/Config.h> -#include <crepe/api/SaveManager.h> -#include <crepe/util/Log.h> -#include <crepe/util/Proxy.h> - -using namespace crepe; - -// unrelated setup code -int _ = []() { -	// make sure all log messages get printed -	auto & cfg = Config::get_instance(); -	cfg.log.level = Log::Level::TRACE; - -	return 0; // satisfy compiler -}(); - -int main() { -	const char * key = "mygame.test"; - -	SaveManager & mgr = SaveManager::get_instance(); - -	dbg_logf("has key = {}", mgr.has(key)); -	ValueBroker<int> prop = mgr.get<int>(key, 0); -	Proxy<int> val = mgr.get<int>(key, 0); - -	dbg_logf("val = {}", mgr.get<int>(key).get()); -	prop.set(1); -	dbg_logf("val = {}", mgr.get<int>(key).get()); -	val = 2; -	dbg_logf("val = {}", mgr.get<int>(key).get()); -	mgr.set<int>(key, 3); -	dbg_logf("val = {}", mgr.get<int>(key).get()); - -	dbg_logf("has key = {}", mgr.has(key)); -	assert(true == mgr.has(key)); - -	return 0; -}  |