aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/crepe/system/RenderSystem.cpp4
-rw-r--r--src/example/rendering_particle.cpp8
2 files changed, 8 insertions, 4 deletions
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 28bcf56..c137de1 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -36,10 +36,10 @@ bool RenderSystem::render_particle(const Sprite & sprite, const double & scale)
bool rendering_particles = false;
for (const ParticleEmitter & em : emitters) {
+ if (!(&em.data.sprite == &sprite)) continue;
+ rendering_particles = true;
if (!em.active) continue;
- if (!(em.data.sprite.game_object_id == sprite.game_object_id)) continue;
- rendering_particles = true;
for (const Particle & p : em.data.particles) {
if (!p.active) continue;
diff --git a/src/example/rendering_particle.cpp b/src/example/rendering_particle.cpp
index 3f71750..bcf95b8 100644
--- a/src/example/rendering_particle.cpp
+++ b/src/example/rendering_particle.cpp
@@ -15,6 +15,7 @@
#include <crepe/system/RenderSystem.h>
#include <chrono>
+#include <memory>
using namespace crepe;
using namespace std;
@@ -26,10 +27,12 @@ int main(int argc, char * argv[]) {
ParticleSystem psys{mgr};
Color color(255, 255, 255, 255);
+ game_object.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"), color, FlipSettings{false,false});
+
Sprite test_sprite = game_object.add_component<Sprite>(
make_shared<Texture>("../asset/texture/img.png"), color, FlipSettings{false, false});
game_object.add_component<ParticleEmitter>(ParticleEmitter::Data{
- .position = {0, 0},
+ .position = {100, 0},
.max_particles = 10,
.emission_rate = 0.1,
.min_speed = 6,
@@ -46,9 +49,10 @@ int main(int argc, char * argv[]) {
.reset_on_exit = false,
},
.sprite = test_sprite,
- });
+ }).active = false;
game_object.add_component<Camera>(Color::get_white());
+
auto start = std::chrono::steady_clock::now();
while (std::chrono::steady_clock::now() - start < std::chrono::seconds(5)) {
psys.update();