Add particles for arrow destruction
parent
b17c521dfd
commit
029415e19f
|
@ -6,6 +6,7 @@ typedef enum EntityTag {
|
|||
ENEMY_ENT_TAG,
|
||||
CRATES_ENT_TAG,
|
||||
CHEST_ENT_TAG,
|
||||
ARROW_ENT_TAG,
|
||||
BOULDER_ENT_TAG,
|
||||
LEVEL_END_TAG,
|
||||
DESTRUCTABLE_ENT_TAG,
|
||||
|
|
|
@ -282,6 +282,20 @@ void destroy_entity(Scene_t* scene, TileGrid_t* tilemap, Entity_t* p_ent)
|
|||
};
|
||||
play_particle_emitter(&scene->part_sys, &emitter);
|
||||
}
|
||||
else if (p_ent->m_tag == ARROW_ENT_TAG)
|
||||
{
|
||||
const CTransform_t* p_ctransform = get_component(p_ent, CTRANSFORM_COMP_T);
|
||||
ParticleEmitter_t emitter = {
|
||||
.spr = get_sprite(&scene->engine->assets, "p_arrow"),
|
||||
.config = get_emitter_conf(&scene->engine->assets, "pe_burst"),
|
||||
.position = p_ctransform->position,
|
||||
.n_particles = 2,
|
||||
.user_data = &(CONTAINER_OF(scene, LevelScene_t, scene)->data),
|
||||
.update_func = &simple_particle_system_update,
|
||||
};
|
||||
play_particle_emitter(&scene->part_sys, &emitter);
|
||||
}
|
||||
|
||||
remove_entity_from_tilemap(&scene->ent_manager, tilemap, p_ent);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "constants.h"
|
||||
#include "raymath.h"
|
||||
|
||||
static SpriteRenderInfo_t item_sprite_map[19] = {0};
|
||||
static SpriteRenderInfo_t item_sprite_map[20] = {0};
|
||||
|
||||
bool init_item_creation(Assets_t* assets)
|
||||
{
|
||||
|
@ -28,6 +28,7 @@ bool init_item_creation(Assets_t* assets)
|
|||
item_sprite_map[17].sprite = get_sprite(assets, "explode");
|
||||
item_sprite_map[17].offset = (Vector2){-12, -12};
|
||||
item_sprite_map[18].sprite = get_sprite(assets, "chest");
|
||||
item_sprite_map[19].sprite = get_sprite(assets, "boulder");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -96,12 +97,17 @@ Entity_t* create_boulder(EntityManager_t* ent_manager, Assets_t* assets)
|
|||
p_hurtbox->size = p_bbox->size;
|
||||
p_hurtbox->def = 2;
|
||||
p_hurtbox->damage_src = -1;
|
||||
|
||||
CSprite_t* p_cspr = add_component(p_boulder, CSPRITE_T);
|
||||
p_cspr->sprites = item_sprite_map;
|
||||
p_cspr->current_idx = 19;
|
||||
|
||||
return p_boulder;
|
||||
}
|
||||
|
||||
Entity_t* create_arrow(EntityManager_t* ent_manager, Assets_t* assets, uint8_t dir)
|
||||
{
|
||||
Entity_t* p_arrow = add_entity(ent_manager, DESTRUCTABLE_ENT_TAG);
|
||||
Entity_t* p_arrow = add_entity(ent_manager, ARROW_ENT_TAG);
|
||||
if (p_arrow == NULL) return NULL;
|
||||
|
||||
add_component(p_arrow, CTILECOORD_COMP_T);
|
||||
|
|
Loading…
Reference in New Issue