diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/crepe/api/ParticleEmitter.h | 6 | ||||
| -rw-r--r-- | src/crepe/system/ParticleSystem.cpp | 1 | ||||
| -rw-r--r-- | src/crepe/system/ParticleSystem.h | 4 | ||||
| -rw-r--r-- | src/test/ParticleTest.cpp | 22 | 
4 files changed, 22 insertions, 11 deletions
| diff --git a/src/crepe/api/ParticleEmitter.h b/src/crepe/api/ParticleEmitter.h index 2cda1bb..e81ed3b 100644 --- a/src/crepe/api/ParticleEmitter.h +++ b/src/crepe/api/ParticleEmitter.h @@ -5,9 +5,9 @@  #include "Component.h"  #include "Particle.h" -#include "Transform.h" +#include "Sprite.h" -class Sprite; +// class Sprite;  namespace crepe { @@ -70,7 +70,7 @@ public:  		//! collection of particles  		std::vector<Particle> particles;  		//! sprite reference -		const Sprite* sprite; +		const Sprite& sprite;  	};	  public:  	/** diff --git a/src/crepe/system/ParticleSystem.cpp b/src/crepe/system/ParticleSystem.cpp index 33027f8..ad6699b 100644 --- a/src/crepe/system/ParticleSystem.cpp +++ b/src/crepe/system/ParticleSystem.cpp @@ -4,6 +4,7 @@  #include "api/ParticleEmitter.h"  #include "api/Vector2.h" +#include "api/Transform.h"  #include "ComponentManager.h"  #include "ParticleSystem.h" diff --git a/src/crepe/system/ParticleSystem.h b/src/crepe/system/ParticleSystem.h index df89ed9..023a886 100644 --- a/src/crepe/system/ParticleSystem.h +++ b/src/crepe/system/ParticleSystem.h @@ -1,9 +1,9 @@  #pragma once -#include "../api/ParticleEmitter.h"  namespace crepe { - +class ParticleEmitter; +class Transform;  /**   	* \brief ParticleSystem class responsible for managing particle emission, updates, and bounds checking.   	*/ diff --git a/src/test/ParticleTest.cpp b/src/test/ParticleTest.cpp index 8c6a7e7..7883eca 100644 --- a/src/test/ParticleTest.cpp +++ b/src/test/ParticleTest.cpp @@ -5,25 +5,36 @@  #include <crepe/api/GameObject.h>  #include <crepe/api/Rigidbody.h>  #include <crepe/api/Transform.h> +#include <crepe/api/ParticleEmitter.h> +#include <crepe/Particle.h>  #include <crepe/system/ParticleSystem.h>  #include <gtest/gtest.h> - +#include <crepe/api/Sprite.h>  using namespace std;  using namespace std::chrono_literals;  using namespace crepe; + +  class ParticlesTest : public ::testing::Test {  protected: -	GameObject * game_object;  	ParticleSystem particle_system;  	void SetUp() override {  		ComponentManager & mgr = ComponentManager::get_instance();  		std::vector<std::reference_wrapper<Transform>> transforms  			= mgr.get_components_by_id<Transform>(0);  		if (transforms.empty()) { -			game_object = new GameObject(0, "", "", Vector2{0, 0}, 0, 0); -			game_object->add_component<ParticleEmitter>(ParticleEmitter::Data{ +		 +			 +			GameObject game_object(0, "", "", Vector2{0, 0}, 0, 0); + +			Color color(0, 0, 0, 0); +			Sprite test_sprite = game_object.add_component<Sprite>( +			make_shared<Texture>("../asset/texture/img.png"), color, +			FlipSettings{true, true}); + +			game_object.add_component<ParticleEmitter>(ParticleEmitter::Data{  				.position = {0,0},  				.max_particles = 100,  				.emission_rate = 0, @@ -40,7 +51,7 @@ protected:  					.offset = Vector2{0,0},  					.reset_on_exit = false,  				}, -				.sprite = nullptr, +				.sprite = test_sprite,  			});  		}  		transforms = mgr.get_components_by_id<Transform>(0); @@ -61,7 +72,6 @@ protected:  		emitter.data.end_lifespan = 0;  		emitter.data.force_over_time = Vector2{0, 0};  		emitter.data.boundary = {0, 0, Vector2{0, 0}, false}; -		emitter.data.sprite = nullptr;  		for (auto& particle : emitter.data.particles) {  			particle.active = false;  		} |