Add sprite info for arrows and bombs
parent
6d97272420
commit
b980f16def
|
@ -38,6 +38,8 @@
|
||||||
#define GROUND_X_FRICTION 5.8
|
#define GROUND_X_FRICTION 5.8
|
||||||
#define GROUND_Y_FRICTION 1.0
|
#define GROUND_Y_FRICTION 1.0
|
||||||
|
|
||||||
|
#define ARROW_SPEED 350
|
||||||
|
|
||||||
#define MAX_WATER_LEVEL 4
|
#define MAX_WATER_LEVEL 4
|
||||||
#define WATER_BBOX_STEP (TILE_SIZE / MAX_WATER_LEVEL)
|
#define WATER_BBOX_STEP (TILE_SIZE / MAX_WATER_LEVEL)
|
||||||
|
|
||||||
|
|
|
@ -2,14 +2,19 @@
|
||||||
#include "constants.h"
|
#include "constants.h"
|
||||||
#include "raymath.h"
|
#include "raymath.h"
|
||||||
|
|
||||||
static SpriteRenderInfo_t item_sprite_map[3] = {0};
|
static SpriteRenderInfo_t item_sprite_map[7] = {0};
|
||||||
|
|
||||||
bool init_item_creation(Assets_t* assets)
|
bool init_item_creation(Assets_t* assets)
|
||||||
{
|
{
|
||||||
item_sprite_map[0].sprite = get_sprite(assets, "w_crate");
|
item_sprite_map[0].sprite = get_sprite(assets, "w_crate");
|
||||||
item_sprite_map[1].sprite = get_sprite(assets, "m_crate");
|
item_sprite_map[1].sprite = get_sprite(assets, "m_crate");
|
||||||
item_sprite_map[2].sprite = get_sprite(assets, "arrow");
|
item_sprite_map[2].sprite = get_sprite(assets, "r_arrow");
|
||||||
item_sprite_map[2].offset = (Vector2){-8, 4};
|
item_sprite_map[2].offset = (Vector2){-8, 4};
|
||||||
|
item_sprite_map[3].sprite = get_sprite(assets, "u_arrow");
|
||||||
|
item_sprite_map[4].sprite = get_sprite(assets, "l_arrow");
|
||||||
|
item_sprite_map[5].sprite = get_sprite(assets, "d_arrow");
|
||||||
|
item_sprite_map[6].sprite = get_sprite(assets, "bomb");
|
||||||
|
item_sprite_map[6].offset = (Vector2){0, -4};
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,19 +100,22 @@ Entity_t* create_arrow(EntityManager_t* ent_manager, Assets_t* assets, uint8_t d
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
p_hitbox->boxes[0] = (Rectangle){10, TILE_SIZE / 2 - 5, 10, 5};
|
p_hitbox->boxes[0] = (Rectangle){10, TILE_SIZE / 2 - 5, 10, 5};
|
||||||
p_ctransform->velocity.x = -250;
|
p_ctransform->velocity.x = -ARROW_SPEED;
|
||||||
|
p_cspr->current_idx += 2;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
p_hitbox->boxes[0] = (Rectangle){TILE_SIZE / 2 - 5, 10, 5, 10};
|
p_hitbox->boxes[0] = (Rectangle){TILE_SIZE / 2 - 5, 10, 5, 10};
|
||||||
p_ctransform->velocity.y = -250;
|
p_ctransform->velocity.y = -ARROW_SPEED;
|
||||||
|
p_cspr->current_idx += 1;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
p_hitbox->boxes[0] = (Rectangle){TILE_SIZE / 2 - 5, 10, 5, 10};
|
p_hitbox->boxes[0] = (Rectangle){TILE_SIZE / 2 - 5, 10, 5, 10};
|
||||||
p_ctransform->velocity.y = 250;
|
p_ctransform->velocity.y = ARROW_SPEED;
|
||||||
|
p_cspr->current_idx += 3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
p_hitbox->boxes[0] = (Rectangle){10, TILE_SIZE / 2 - 5, 10, 5};
|
p_hitbox->boxes[0] = (Rectangle){10, TILE_SIZE / 2 - 5, 10, 5};
|
||||||
p_ctransform->velocity.x = 250;
|
p_ctransform->velocity.x = ARROW_SPEED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,6 +137,10 @@ Entity_t* create_bomb(EntityManager_t* ent_manager, Assets_t* assets, Vector2 la
|
||||||
CContainer_t* p_container = add_component(p_bomb, CCONTAINER_T);
|
CContainer_t* p_container = add_component(p_bomb, CCONTAINER_T);
|
||||||
p_container->item = CONTAINER_EXPLOSION;
|
p_container->item = CONTAINER_EXPLOSION;
|
||||||
|
|
||||||
|
CSprite_t* p_cspr = add_component(p_bomb, CSPRITE_T);
|
||||||
|
p_cspr->sprites = item_sprite_map;
|
||||||
|
p_cspr->current_idx = 6;
|
||||||
|
|
||||||
CTransform_t* p_ctransform = add_component(p_bomb, CTRANSFORM_COMP_T);
|
CTransform_t* p_ctransform = add_component(p_bomb, CTRANSFORM_COMP_T);
|
||||||
p_ctransform->active = true;
|
p_ctransform->active = true;
|
||||||
p_ctransform->shape_factor = (Vector2){0.1, 0.1};
|
p_ctransform->shape_factor = (Vector2){0.1, 0.1};
|
||||||
|
|
Loading…
Reference in New Issue