diff options
| author | max-001 <maxsmits21@kpnmail.nl> | 2024-12-16 18:31:48 +0100 | 
|---|---|---|
| committer | max-001 <maxsmits21@kpnmail.nl> | 2024-12-16 18:31:48 +0100 | 
| commit | f9f0fbbd71f9f46c1ef2a7205ccef0772dba24cd (patch) | |
| tree | 6ed24c8258aac7cc8c913e45ac24761f91473d8d /src | |
| parent | 3615d56fba5f4933045e96f17f87d8d909a7e576 (diff) | |
Split everything into seperate classes
Diffstat (limited to 'src')
| -rw-r--r-- | src/example/game.cpp | 122 | 
1 files changed, 75 insertions, 47 deletions
diff --git a/src/example/game.cpp b/src/example/game.cpp index d316729..8d634fa 100644 --- a/src/example/game.cpp +++ b/src/example/game.cpp @@ -53,29 +53,9 @@ private:  	const std::string name;  }; -class Background { +class Start {  public: -	Background(Scene & scn) { -		this->start(scn); - -		this->hallway(scn, 1, Color::YELLOW); - -		this->forest(scn, "1"); - -		this->hallway(scn, 2, Color::MAGENTA); - -		this->aquarium(scn); - -		this->hallway(scn, 3, Color::CYAN); - -		this->forest(scn, "2"); - -		this->hallway(scn, 4, Color::GREEN); - -		this->aquarium(scn); -	} - -	void start(Scene & scn) { +	float create(Scene & scn, float begin_x) {  		GameObject begin = scn.new_object("start_begin", "background", vec2(begin_x, 0));  		Asset begin_asset{"asset/jetpack_joyride/background/start/titleFG_1_TVOS.png"};  		begin.add_component<Sprite>(begin_asset, Sprite::Data{ @@ -94,10 +74,13 @@ public:  											 });  		begin_x += 100; -		this->add_lamp_start(end, vec2(-350, -95)); +		this->add_lamp(end, vec2(-350, -95)); + +		return begin_x;  	} -	void add_lamp_start(GameObject & obj, vec2 offset, unsigned int fps = 10) { +private: +	void add_lamp(GameObject & obj, vec2 offset, unsigned int fps = 10) {  		Asset lamp_asset{"asset/jetpack_joyride/background/start/alarmLight_TVOS.png"};  		obj.add_component<Sprite>(lamp_asset, Sprite::Data{  												  .sorting_in_layer = 5, @@ -119,8 +102,11 @@ public:  										.looping = true,  									});  	} +}; -	void hallway(Scene & scn, unsigned int sector_num, Color sector_color) { +class Hallway { +public: +	float create(Scene & scn, float begin_x, unsigned int sector_num, Color sector_color) {  		GameObject begin = scn.new_object("hallway_begin", "background", vec2(begin_x, 0));  		Asset begin_asset{"asset/jetpack_joyride/background/hallway/hallway1FG_1_TVOS.png"};  		begin.add_component<Sprite>(begin_asset, Sprite::Data{ @@ -130,9 +116,9 @@ public:  												 });  		begin_x += 600; -		this->add_sector_number_hallway(begin, vec2(-200, 0), sector_num, sector_color); -		this->add_lamp_hallway(begin, vec2(-70, -120), 11); -		this->add_lamp_hallway(begin, vec2(30, -120), 9); +		this->add_sector_number(begin, vec2(-200, 0), sector_num, sector_color); +		this->add_lamp(begin, vec2(-70, -120), 11); +		this->add_lamp(begin, vec2(30, -120), 9);  		GameObject middle_1 = scn.new_object("hallway_middle", "background", vec2(begin_x, 0));  		Asset middle_asset{"asset/jetpack_joyride/background/hallway/hallway1FG_2_TVOS.png"}; @@ -161,7 +147,7 @@ public:  													   });  		begin_x += 400; -		this->add_lamp_hallway(middle_3, vec2(0, -120)); +		this->add_lamp(middle_3, vec2(0, -120));  		GameObject middle_4 = scn.new_object("hallway_middle", "background", vec2(begin_x, 0));  		Asset middle_asset_4{"asset/jetpack_joyride/background/hallway/hallway1FG_2_TVOS.png"}; @@ -180,9 +166,12 @@ public:  												 .size = vec2(0, 800),  											 });  		begin_x += 600; + +		return begin_x;  	} -	void add_lamp_hallway(GameObject & obj, vec2 offset, unsigned int fps = 10) { +private: +	void add_lamp(GameObject & obj, vec2 offset, unsigned int fps = 10) {  		Asset lamp_asset{"asset/jetpack_joyride/background/hallway/alarmLight_TVOS.png"};  		obj.add_component<Sprite>(lamp_asset, Sprite::Data{  												  .sorting_in_layer = 5, @@ -205,8 +194,8 @@ public:  									});  	} -	void add_sector_number_hallway(GameObject & obj, vec2 offset, unsigned int sector_num, -								   Color sector_color) { +	void add_sector_number(GameObject & obj, vec2 offset, unsigned int sector_num, +						   Color sector_color) {  		Asset sector_text_asset{  			"asset/jetpack_joyride/background/hallway/sectorText_TVOS.png"};  		obj.add_component<Sprite>(sector_text_asset, Sprite::Data{ @@ -236,13 +225,16 @@ public:  		}  		sector_num_anim.pause();  	} +}; -	void forest(Scene & scn, std::string unique_bg_name) { +class Forest { +public: +	float create(Scene & scn, float begin_x, std::string unique_bg_name) {  		GameObject script = scn.new_object("forest_script", "background");  		script.add_component<BehaviorScript>().set_script<ParallaxScript>(  			begin_x - 400, begin_x + 3000 + 400, unique_bg_name); -		this->add_background_forest(scn, begin_x, unique_bg_name); +		this->add_background(scn, begin_x, unique_bg_name);  		GameObject begin = scn.new_object("forest_begin", "background", vec2(begin_x, 0));  		Asset begin_asset{"asset/jetpack_joyride/background/forest/forestFG_1_TVOS.png"}; @@ -253,7 +245,7 @@ public:  												 });  		begin_x += 800; -		this->add_background_forest(scn, begin_x, unique_bg_name); +		this->add_background(scn, begin_x, unique_bg_name);  		GameObject middle_1 = scn.new_object("forest_middle", "background", vec2(begin_x, 0));  		Asset middle_1_asset{"asset/jetpack_joyride/background/forest/forestFG_3_TVOS.png"}; @@ -264,7 +256,7 @@ public:  													   });  		begin_x += 800; -		this->add_background_forest(scn, begin_x, unique_bg_name); +		this->add_background(scn, begin_x, unique_bg_name);  		GameObject middle_2 = scn.new_object("forest_middle", "background", vec2(begin_x, 0));  		Asset middle_2_asset{"asset/jetpack_joyride/background/forest/forestFG_3_TVOS.png"}; @@ -275,7 +267,7 @@ public:  													   });  		begin_x += 800; -		this->add_background_forest(scn, begin_x, unique_bg_name); +		this->add_background(scn, begin_x, unique_bg_name);  		GameObject end = scn.new_object("forest_end", "background", vec2(begin_x, 0));  		Asset end_asset{"asset/jetpack_joyride/background/forest/forestFG_2_TVOS.png"}; @@ -286,10 +278,13 @@ public:  											 });  		begin_x += 600; -		this->add_background_forest(scn, begin_x + 200, unique_bg_name); +		this->add_background(scn, begin_x + 200, unique_bg_name); + +		return begin_x;  	} -	void add_background_forest(Scene & scn, float begin_x, std::string name) { +private: +	void add_background(Scene & scn, float begin_x, std::string name) {  		GameObject bg_1  			= scn.new_object("forest_bg_1_" + name, "forest_background", vec2(begin_x, 0));  		Asset bg_1_asset{"asset/jetpack_joyride/background/forest/forestBG1_1_TVOS.png"}; @@ -352,9 +347,12 @@ public:  			.linear_velocity = vec2(40, 0),  		});  	} +}; -	void aquarium(Scene & scn) { -		this->add_background_aquarium(scn, begin_x); +class Aquarium { +public: +	float create(Scene & scn, float begin_x) { +		this->add_background(scn, begin_x);  		GameObject aquarium_begin  			= scn.new_object("aquarium_begin", "background", vec2(begin_x, 0)); @@ -379,7 +377,7 @@ public:  												});  		begin_x += 400; -		this->add_background_aquarium(scn, begin_x - 200); +		this->add_background(scn, begin_x - 200);  		GameObject aquarium_middle_2  			= scn.new_object("aquarium_middle", "background", vec2(begin_x, 0)); @@ -405,7 +403,7 @@ public:  												});  		begin_x += 400; -		this->add_background_aquarium(scn, begin_x - 200); +		this->add_background(scn, begin_x - 200);  		GameObject aquarium_middle_4  			= scn.new_object("aquarium_middle", "background", vec2(begin_x, 0)); @@ -419,7 +417,7 @@ public:  												});  		begin_x += 600; -		this->add_background_aquarium(scn, begin_x); +		this->add_background(scn, begin_x);  		GameObject aquarium_end  			= scn.new_object("aquarium_end", "background", vec2(begin_x, 0)); @@ -431,9 +429,12 @@ public:  																   .size = vec2(0, 800),  															   });  		begin_x += 600; + +		return begin_x;  	} -	void add_background_aquarium(Scene & scn, float begin_x) { +private: +	void add_background(Scene & scn, float begin_x) {  		GameObject bg_1  			= scn.new_object("aquarium_bg_1", "aquarium_background", vec2(begin_x, 0));  		Asset bg_1_1_asset{"asset/jetpack_joyride/background/aquarium/AquariumBG1_1_TVOS.png"}; @@ -483,9 +484,36 @@ public:  													 .position_offset = vec2(-200, -200),  												 });  	} +}; -private: -	float begin_x = 0; +class Background { +public: +	Background(Scene & scn) { +		Start start; +		Hallway hallway; +		Forest forest; +		Aquarium aquarium; + +		float begin_x = 0; + +		begin_x = start.create(scn, begin_x); + +		begin_x = hallway.create(scn, begin_x, 1, Color::YELLOW); + +		begin_x = forest.create(scn, begin_x, "1"); + +		begin_x = hallway.create(scn, begin_x, 2, Color::MAGENTA); + +		begin_x = aquarium.create(scn, begin_x); + +		begin_x = hallway.create(scn, begin_x, 3, Color::CYAN); + +		begin_x = forest.create(scn, begin_x, "2"); + +		begin_x = hallway.create(scn, begin_x, 4, Color::GREEN); + +		begin_x = aquarium.create(scn, begin_x); +	}  };  class MoveCameraScript : public Script {  |