Adjust bubbles draw position

scene_man
En Yi 2023-11-23 20:53:04 +08:00
parent d5c6d05558
commit f3d48281f5
2 changed files with 9 additions and 7 deletions

View File

@ -1504,9 +1504,9 @@ void update_entity_emitter_system(Scene_t* scene)
{ {
Entity_t* p_ent = get_entity(&scene->ent_manager, ent_idx); Entity_t* p_ent = get_entity(&scene->ent_manager, ent_idx);
CTransform_t* p_ctransform = get_component(p_ent, CTRANSFORM_COMP_T); CTransform_t* p_ctransform = get_component(p_ent, CTRANSFORM_COMP_T);
CBBox_t* p_bbox = get_component(p_ent, CBBOX_COMP_T); //CBBox_t* p_bbox = get_component(p_ent, CBBOX_COMP_T);
Vector2 new_pos = p_ctransform->position; Vector2 new_pos = Vector2Add(p_ctransform->position,p_emitter->offset);
new_pos.y += p_bbox->half_size.y; //new_pos.y += p_bbox->half_size.y;
if (is_emitter_handle_alive(&scene->part_sys, p_emitter->handle)) if (is_emitter_handle_alive(&scene->part_sys, p_emitter->handle))
{ {
update_emitter_handle_position(&scene->part_sys, p_emitter->handle, new_pos); 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)) if (!is_emitter_handle_alive(&scene->part_sys, p_emitter->handle))
{ {
Vector2 new_pos = p_ctransform->position; //Vector2 new_pos = p_ctransform->position;
new_pos.y += p_bbox->half_size.y; //new_pos.y += p_bbox->half_size.y;
ParticleEmitter_t emitter = { ParticleEmitter_t emitter = {
.spr = get_sprite(&scene->engine->assets, "p_water"), .spr = get_sprite(&scene->engine->assets, "p_water"),
.config = get_emitter_conf(&scene->engine->assets, "pe_bubbling"), .config = get_emitter_conf(&scene->engine->assets, "pe_bubbling"),
.position = new_pos, //.position = new_pos,
.position = p_ctransform->position,
.n_particles = 5, .n_particles = 5,
.user_data = &(CONTAINER_OF(scene, LevelScene_t, scene)->data), .user_data = &(CONTAINER_OF(scene, LevelScene_t, scene)->data),
.update_func = &floating_particle_system_update, .update_func = &floating_particle_system_update,

View File

@ -105,7 +105,8 @@ Entity_t* create_player(EntityManager_t* ent_manager)
p_cspr->sprites = player_sprite_map; p_cspr->sprites = player_sprite_map;
p_cspr->transition_func = &player_sprite_transition_func; 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; return p_ent;
} }