diff options
author | jaroWMR <jarorutjes07@gmail.com> | 2024-10-10 08:38:40 +0200 |
---|---|---|
committer | jaroWMR <jarorutjes07@gmail.com> | 2024-10-10 08:38:40 +0200 |
commit | d001c4ba95a72f13c942f1a24eb98fe1584d93a4 (patch) | |
tree | 8d72f1ddf9baf591fdf99397aa1495a219d35d35 | |
parent | 163c9e3eea437daa8ef6007fbdf2f91470066cbf (diff) |
Renamed files and Emitter is a component
-rw-r--r-- | src/crepe/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/crepe/Particle.cpp | 4 | ||||
-rw-r--r-- | src/crepe/Particle.h (renamed from src/crepe/Particle.hpp) | 4 | ||||
-rw-r--r-- | src/crepe/ParticleEmitter.cpp | 10 | ||||
-rw-r--r-- | src/crepe/ParticleEmitter.h | 32 | ||||
-rw-r--r-- | src/crepe/ParticleEmitter.hpp | 25 | ||||
-rw-r--r-- | src/crepe/ParticleSystem.cpp | 12 | ||||
-rw-r--r-- | src/crepe/ParticleSystem.h (renamed from src/crepe/ParticleSystem.hpp) | 7 | ||||
-rw-r--r-- | src/crepe/SDLApp.cpp | 6 | ||||
-rw-r--r-- | src/crepe/SDLApp.h (renamed from src/crepe/SDLApp.hpp) | 6 | ||||
-rw-r--r-- | src/example/particel.cpp | 10 |
11 files changed, 74 insertions, 50 deletions
diff --git a/src/crepe/CMakeLists.txt b/src/crepe/CMakeLists.txt index 9c65e1e..399200b 100644 --- a/src/crepe/CMakeLists.txt +++ b/src/crepe/CMakeLists.txt @@ -21,10 +21,10 @@ target_sources(crepe PUBLIC FILE_SET HEADERS FILES Asset.h Sound.h SoundContext.h - ParticleEmitter.hpp - ParticleSystem.hpp - Particle.hpp - SDLApp.hpp + ParticleEmitter.h + ParticleSystem.h + Particle.h + SDLApp.h ComponentManager.h ComponentManager.hpp Component.h diff --git a/src/crepe/Particle.cpp b/src/crepe/Particle.cpp index 8cf7f7e..aa33606 100644 --- a/src/crepe/Particle.cpp +++ b/src/crepe/Particle.cpp @@ -1,6 +1,8 @@ -#include "Particle.hpp" +#include "Particle.h" #include <iostream> +using namespace crepe; + Particle::Particle() { this->active = false; diff --git a/src/crepe/Particle.hpp b/src/crepe/Particle.h index 669a8ab..c408ed9 100644 --- a/src/crepe/Particle.hpp +++ b/src/crepe/Particle.h @@ -1,5 +1,7 @@ #pragma once +namespace crepe { + struct Position { float x; float y; @@ -18,3 +20,5 @@ public: void update(float deltaTime); float timeInLife; }; + +} diff --git a/src/crepe/ParticleEmitter.cpp b/src/crepe/ParticleEmitter.cpp index 3c9cc4e..9ae5e76 100644 --- a/src/crepe/ParticleEmitter.cpp +++ b/src/crepe/ParticleEmitter.cpp @@ -1,11 +1,13 @@ -#include "ParticleEmitter.hpp" +#include "ParticleEmitter.h" #include <ctime> -#include "Particle.hpp" +#include "Particle.h" #include <iostream> -ParticleEmitter::ParticleEmitter(unsigned int maxParticles, unsigned int emissionRate, unsigned int speed, unsigned int speedOffset, unsigned int angle, unsigned int angleOffset, float m_beginLifespan, float m_endLifespan) +using namespace crepe; + +ParticleEmitter::ParticleEmitter(uint32_t maxParticles, uint32_t emissionRate, uint32_t speed, uint32_t speedOffset, uint32_t angle, uint32_t angleOffset, float m_beginLifespan, float m_endLifespan) : m_maxParticles(maxParticles), m_emissionRate(emissionRate), m_speed(speed), m_speedOffset(speedOffset), m_position{0, 0}, m_beginLifespan(m_beginLifespan),m_endLifespan(m_endLifespan) { - std::srand(static_cast<unsigned int>(std::time(nullptr))); // initialize random seed + std::srand(static_cast<uint32_t>(std::time(nullptr))); // initialize random seed std::cout << "Create emitter" << std::endl; m_minAngle = (360 + angle - (angleOffset % 360)) % 360; // calculate minAngle m_maxAngle = (360 + angle + (angleOffset % 360)) % 360; // calculate maxAngle diff --git a/src/crepe/ParticleEmitter.h b/src/crepe/ParticleEmitter.h new file mode 100644 index 0000000..477f492 --- /dev/null +++ b/src/crepe/ParticleEmitter.h @@ -0,0 +1,32 @@ +#pragma once + +#include <vector> +#include "Particle.h" +#include <cstdint> +#include "Component.h" +# + +namespace crepe { + +class ParticleEmitter : public Component { +public: + ParticleEmitter(uint32_t maxParticles, uint32_t emissionRate, uint32_t speed, uint32_t speedOffset, uint32_t angle, uint32_t angleOffset,float m_beginLifespan,float m_endLifespan); + ~ParticleEmitter(); + + Position m_position; //position of the emitter + uint32_t m_maxParticles; //maximum number of particles + uint32_t m_emissionRate; //rate of particle emission + uint32_t m_speed; //base speed of the particles + uint32_t m_speedOffset; //offset for random speed variation + uint32_t m_minAngle; //min angle of particle emission + uint32_t m_maxAngle; //max angle of particle emission + float m_beginLifespan; //begin Lifespan of particle (only visual) + float m_endLifespan; //begin Lifespan of particle + + std::vector<Particle> particles; //collection of particles + +}; + +} + + diff --git a/src/crepe/ParticleEmitter.hpp b/src/crepe/ParticleEmitter.hpp deleted file mode 100644 index 5de5e1e..0000000 --- a/src/crepe/ParticleEmitter.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include <vector> -#include "Particle.hpp" - - - -class ParticleEmitter { -public: - ParticleEmitter(unsigned int maxParticles, unsigned int emissionRate, unsigned int speed, unsigned int speedOffset, unsigned int angle, unsigned int angleOffset,float m_beginLifespan,float m_endLifespan); - ~ParticleEmitter(); - - Position m_position; //position of the emitter - unsigned int m_maxParticles; //maximum number of particles - unsigned int m_emissionRate; //rate of particle emission - unsigned int m_speed; //base speed of the particles - unsigned int m_speedOffset; //offset for random speed variation - unsigned int m_minAngle; //min angle of particle emission - unsigned int m_maxAngle; //max angle of particle emission - float m_beginLifespan; //begin Lifespan of particle (only visual) - float m_endLifespan; //begin Lifespan of particle - - std::vector<Particle> particles; //collection of particles - -}; diff --git a/src/crepe/ParticleSystem.cpp b/src/crepe/ParticleSystem.cpp index aff7a30..8891e2b 100644 --- a/src/crepe/ParticleSystem.cpp +++ b/src/crepe/ParticleSystem.cpp @@ -1,10 +1,12 @@ -#include "ParticleSystem.hpp" +#include "ParticleSystem.h" #include <cmath> // #include <cstdlib> #include <ctime> #include <iostream> // include iostream for std::cout -#include "ParticleEmitter.hpp" -#include "Particle.hpp" +#include "ParticleEmitter.h" +#include "Particle.h" + +using namespace crepe; ParticleSystem::ParticleSystem() : m_elapsedTime(0.0f) {} // Initialize m_elapsedTime to 0 @@ -39,11 +41,11 @@ void ParticleSystem::emitParticle(ParticleEmitter& emitter) { //check if value is overthe 360 degrees if(emitter.m_maxAngle < emitter.m_minAngle) { - randomAngle = ((emitter.m_minAngle + (std::rand() % (static_cast<int>(emitter.m_maxAngle + 360 - emitter.m_minAngle + 1))))%360); + randomAngle = ((emitter.m_minAngle + (std::rand() % (static_cast<uint32_t>(emitter.m_maxAngle + 360 - emitter.m_minAngle + 1))))%360); } else { - randomAngle = emitter.m_minAngle + (std::rand() % (static_cast<int>(emitter.m_maxAngle - emitter.m_minAngle + 1))); + randomAngle = emitter.m_minAngle + (std::rand() % (static_cast<uint32_t>(emitter.m_maxAngle - emitter.m_minAngle + 1))); } diff --git a/src/crepe/ParticleSystem.hpp b/src/crepe/ParticleSystem.h index f670415..fd6d110 100644 --- a/src/crepe/ParticleSystem.hpp +++ b/src/crepe/ParticleSystem.h @@ -1,7 +1,10 @@ #pragma once #include <vector> -#include "ParticleEmitter.hpp" +#include "ParticleEmitter.h" + + +namespace crepe { class ParticleSystem { public: @@ -12,3 +15,5 @@ private: float m_elapsedTime; //elapsed time since the last emission }; + +} diff --git a/src/crepe/SDLApp.cpp b/src/crepe/SDLApp.cpp index 0779af1..715dd6f 100644 --- a/src/crepe/SDLApp.cpp +++ b/src/crepe/SDLApp.cpp @@ -1,8 +1,8 @@ -#include "SDLApp.hpp" +#include "SDLApp.h" #include <iostream> #include <vector> -#include "Particle.hpp" -#include "ParticleEmitter.hpp" +#include "Particle.h" +#include "ParticleEmitter.h" SDLApp::SDLApp(int windowWidth, int windowHeight) : windowWidth(windowWidth), windowHeight(windowHeight), window(nullptr), renderer(nullptr) {} diff --git a/src/crepe/SDLApp.hpp b/src/crepe/SDLApp.h index f95d4bc..8915d30 100644 --- a/src/crepe/SDLApp.hpp +++ b/src/crepe/SDLApp.h @@ -2,8 +2,8 @@ #define SDLAPP_HPP #include <SDL2/SDL.h> -#include "Particle.hpp" -#include "ParticleEmitter.hpp" +#include "Particle.h" +#include "ParticleEmitter.h" class SDLApp { public: @@ -16,7 +16,7 @@ public: void presentScreen(); void drawSquare(int x, int y, int size); void cleanUp(); - void drawParticles(const std::vector<ParticleEmitter>& emitters); + void drawParticles(const std::vector<crepe::ParticleEmitter>& emitters); void drawMultipleSquares(const std::vector<SDL_Rect>& squares); private: int windowWidth; diff --git a/src/example/particel.cpp b/src/example/particel.cpp index 58480a9..c66bbef 100644 --- a/src/example/particel.cpp +++ b/src/example/particel.cpp @@ -1,12 +1,14 @@ #include <iostream> #include <thread> #include <chrono> -#include "SDLApp.hpp" -#include "ParticleEmitter.hpp" -#include "ParticleSystem.hpp" -#include "Particle.hpp" +#include "SDLApp.h" +#include "ParticleEmitter.h" +#include "ParticleSystem.h" +#include "Particle.h" #include <chrono> +using namespace crepe; + const int WINDOW_WIDTH = 800; const int WINDOW_HEIGHT = 600; |