Add particle layer 0

This commit is contained in:
2024-02-10 14:09:04 +01:00
parent 062383407c
commit b39202f730
2 changed files with 15 additions and 2 deletions

View File

@@ -529,6 +529,20 @@ static void renderGame(Game *game, float dt) {
qsort(drawData, numDraws, sizeof(*drawData), cmpDrawData); qsort(drawData, numDraws, sizeof(*drawData), cmpDrawData);
Texture2D tex = game->tileset.tiles; Texture2D tex = game->tileset.tiles;
// Draw particle layer 0
it = ecs_query_iter(ECS, game->particles0Query);
ecs_defer_begin(ECS);
while (ecs_iter_next(&it)) {
Particle *particle = ecs_field(&it, ParticleLayer0, 1);
for (i32 i = 0; i < it.count; i++) {
bzLogInfo("what");
if (updateParticle(tex, &particle[i], dt))
ecs_delete(ECS, it.entities[i]);
}
}
ecs_defer_end(ECS);
// Draw entities
for (i32 i = 0; i < numDraws; i++) { for (i32 i = 0; i < numDraws; i++) {
DrawData draw = drawData[i]; DrawData draw = drawData[i];
Color c = WHITE; Color c = WHITE;
@@ -550,7 +564,7 @@ static void renderGame(Game *game, float dt) {
it = ecs_query_iter(ECS, game->particles1Query); it = ecs_query_iter(ECS, game->particles1Query);
ecs_defer_begin(ECS); ecs_defer_begin(ECS);
while (ecs_iter_next(&it)) { while (ecs_iter_next(&it)) {
Particle *particle = ecs_field(&it, Particle, 1); Particle *particle = ecs_field(&it, ParticleLayer1, 1);
for (i32 i = 0; i < it.count; i++) { for (i32 i = 0; i < it.count; i++) {
if (updateParticle(tex, &particle[i], dt)) if (updateParticle(tex, &particle[i], dt))
ecs_delete(ECS, it.entities[i]); ecs_delete(ECS, it.entities[i]);

View File

@@ -72,7 +72,6 @@ void updateParticleEmitter(ecs_iter_t *it) {
i32 emmit = data.emmitRate + data.emmitVariance * randFloatRange(data.emmitVarianceMin, data.emmitVarianceMax); i32 emmit = data.emmitRate + data.emmitVariance * randFloatRange(data.emmitVarianceMin, data.emmitVarianceMax);
for (i32 pIdx = 0; pIdx < emmit; pIdx++) { for (i32 pIdx = 0; pIdx < emmit; pIdx++) {
ecs_entity_t pEntity = entityCreateEmpty(); ecs_entity_t pEntity = entityCreateEmpty();
ecs_set_ptr(ECS, pEntity, ParticleLayer0, NULL);
Particle particle = spawnParticle(&emitter[i]); Particle particle = spawnParticle(&emitter[i]);
ecs_set_id(ECS, pEntity, emitter[i].targetParticles, sizeof(particle), &particle); ecs_set_id(ECS, pEntity, emitter[i].targetParticles, sizeof(particle), &particle);
} }