Add particle layer 0
This commit is contained in:
16
game/main.c
16
game/main.c
@@ -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]);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user