From f3d48281f51a95c11b494b794901f890fbdb4a69 Mon Sep 17 00:00:00 2001 From: En Yi Date: Thu, 23 Nov 2023 20:53:04 +0800 Subject: [PATCH] Adjust bubbles draw position --- scenes/game_systems.c | 13 +++++++------ scenes/player_ent.c | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/scenes/game_systems.c b/scenes/game_systems.c index f729d67..b7a85d3 100644 --- a/scenes/game_systems.c +++ b/scenes/game_systems.c @@ -1504,9 +1504,9 @@ void update_entity_emitter_system(Scene_t* scene) { Entity_t* p_ent = get_entity(&scene->ent_manager, ent_idx); CTransform_t* p_ctransform = get_component(p_ent, CTRANSFORM_COMP_T); - CBBox_t* p_bbox = get_component(p_ent, CBBOX_COMP_T); - Vector2 new_pos = p_ctransform->position; - new_pos.y += p_bbox->half_size.y; + //CBBox_t* p_bbox = get_component(p_ent, CBBOX_COMP_T); + Vector2 new_pos = Vector2Add(p_ctransform->position,p_emitter->offset); + //new_pos.y += p_bbox->half_size.y; if (is_emitter_handle_alive(&scene->part_sys, p_emitter->handle)) { update_emitter_handle_position(&scene->part_sys, p_emitter->handle, new_pos); @@ -1936,13 +1936,14 @@ void airtimer_update_system(Scene_t* scene) { if (!is_emitter_handle_alive(&scene->part_sys, p_emitter->handle)) { - Vector2 new_pos = p_ctransform->position; - new_pos.y += p_bbox->half_size.y; + //Vector2 new_pos = p_ctransform->position; + //new_pos.y += p_bbox->half_size.y; ParticleEmitter_t emitter = { .spr = get_sprite(&scene->engine->assets, "p_water"), .config = get_emitter_conf(&scene->engine->assets, "pe_bubbling"), - .position = new_pos, + //.position = new_pos, + .position = p_ctransform->position, .n_particles = 5, .user_data = &(CONTAINER_OF(scene, LevelScene_t, scene)->data), .update_func = &floating_particle_system_update, diff --git a/scenes/player_ent.c b/scenes/player_ent.c index f575b57..d6c44b8 100644 --- a/scenes/player_ent.c +++ b/scenes/player_ent.c @@ -105,7 +105,8 @@ Entity_t* create_player(EntityManager_t* ent_manager) p_cspr->sprites = player_sprite_map; p_cspr->transition_func = &player_sprite_transition_func; - add_component(p_ent, CEMITTER_T); + CEmitter_t* p_emitter = add_component(p_ent, CEMITTER_T); + p_emitter->offset = (Vector2){7,0}; return p_ent; }