diff options
Diffstat (limited to 'src/example')
| -rw-r--r-- | src/example/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/example/game.cpp | 30 | 
2 files changed, 17 insertions, 14 deletions
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt index 560e2bc..3ec5e43 100644 --- a/src/example/CMakeLists.txt +++ b/src/example/CMakeLists.txt @@ -20,4 +20,5 @@ add_example(asset_manager)  add_example(savemgr)  add_example(rendering_particle)  add_example(gameloop) +add_example(game) diff --git a/src/example/game.cpp b/src/example/game.cpp index a557be7..f6b580a 100644 --- a/src/example/game.cpp +++ b/src/example/game.cpp @@ -18,17 +18,18 @@ using namespace std;  class MyScript : public Script {  	static bool oncollision(const CollisionEvent& test) { -		std::cout << "test collision: " << test.info.first.collider.game_object_id << std::endl; +		Log::logf("Box {} script on_collision()", test.info.first.collider.game_object_id);  		return true;  	}  	void init() { -		EventManager::get_instance().subscribe<CollisionEvent>(oncollision, this->get_game_object_id()); +		EventManager::get_instance().subscribe<CollisionEvent>(oncollision, 0);  	}  	void update() {  		// Retrieve component from the same GameObject this script is on  	}  }; +  class ConcreteScene1 : public Scene {  public:  	using Scene::Scene; @@ -37,11 +38,11 @@ public:  	ComponentManager & mgr = this->component_manager;  	Color color(0, 0, 0, 0); -	double screen_size_width = 640; -	double screen_size_height = 480; -	double world_collider = 1000; +	float screen_size_width = 640; +	float screen_size_height = 480; +	float world_collider = 1000;  	//define playable world  -	GameObject world = mgr.new_object("Name", "Tag", Vector2{screen_size_width/2, screen_size_height/2}, 0, 1); +	GameObject world = mgr.new_object("Name", "Tag", vec2{screen_size_width/2, screen_size_height/2}, 0, 1);  	world.add_component<Rigidbody>(Rigidbody::Data{  		.mass = 0,  		.gravity_scale = 0, @@ -51,13 +52,13 @@ public:  		.bounce = false,  		.offset = {0,0}  	}); -	world.add_component<BoxCollider>(Vector2{0, 0-(screen_size_height/2+world_collider/2)}, world_collider, world_collider);;	// Top -	world.add_component<BoxCollider>(Vector2{0, screen_size_height/2+world_collider/2}, world_collider, world_collider); // Bottom -	world.add_component<BoxCollider>(Vector2{0-(screen_size_width/2+world_collider/2), 0}, world_collider, world_collider); // Left -	world.add_component<BoxCollider>(Vector2{screen_size_width/2+world_collider/2, 0}, world_collider, world_collider); // right +	world.add_component<BoxCollider>(vec2{0, 0-(screen_size_height/2+world_collider/2)}, world_collider, world_collider);;	// Top +	world.add_component<BoxCollider>(vec2{0, screen_size_height/2+world_collider/2}, world_collider, world_collider); // Bottom +	world.add_component<BoxCollider>(vec2{0-(screen_size_width/2+world_collider/2), 0}, world_collider, world_collider); // Left +	world.add_component<BoxCollider>(vec2{screen_size_width/2+world_collider/2, 0}, world_collider, world_collider); // right -	GameObject game_object1 = mgr.new_object("Name", "Tag", Vector2{screen_size_width/2, screen_size_height/2}, 0, 1); +	GameObject game_object1 = mgr.new_object("Name", "Tag", vec2{screen_size_width/2, screen_size_height/2}, 0, 1);  	game_object1.add_component<Rigidbody>(Rigidbody::Data{  		.mass = 1,  		.gravity_scale = 0.01, @@ -69,20 +70,21 @@ public:  		.elastisity = 1,  		.offset = {0,0},  	}); -	game_object1.add_component<BoxCollider>(Vector2{0, 0}, 20, 20); +	game_object1.add_component<BoxCollider>(vec2{0, 0}, 20, 20);  	game_object1.add_component<BehaviorScript>().set_script<MyScript>();  	game_object1.add_component<Sprite>(  	make_shared<Texture>("/home/jaro/crepe/asset/texture/green_square.png"), color,  	FlipSettings{true, true});  	game_object1.add_component<Camera>(Color::WHITE);  	} + +	string get_name() const { return "scene1"; }  };  int main(int argc, char * argv[]) {  	LoopManager gameloop; -	gameloop.scene_manager.add_scene<ConcreteScene1>("scene1"); -	gameloop.scene_manager.load_next_scene(); +	gameloop.add_scene<ConcreteScene1>();  	gameloop.start();  	return 0;  }  |