adjust starting pos of projectile based on direction
parent
98b9f3431e
commit
3a9196d19a
|
@ -1,13 +1,11 @@
|
||||||
#define WEAPON_KNIFE_SPAWN_DELAY 20
|
#define WEAPON_KNIFE_SPAWN_DELAY 20
|
||||||
#define WEAPON_PROJECTILE_POS_OFFSET 10.0f
|
#define WEAPON_PROJECTILE_POS_OFFSET 200.0f
|
||||||
#define WEAPON_PROJECTILE_SPEED 500.0f
|
#define WEAPON_PROJECTILE_SPEED 500.0f
|
||||||
#define WEAPON_PROJECTILE_RANGE_LIFETIME 800.0f
|
#define WEAPON_PROJECTILE_RANGE_LIFETIME 800.0f
|
||||||
|
|
||||||
//TODO(DavoSK): move to helpers, add srand
|
//TODO(DavoSK): move to helpers, add srand
|
||||||
float get_rand_between(float min, float max) {
|
float get_rand_between(float min, float max) {
|
||||||
srand (time ( NULL));
|
return ((float)rand() / (float)RAND_MAX) * (max - min) + min;
|
||||||
float scale = rand() / (float) RAND_MAX; /* [0, 1.0] */
|
|
||||||
return min + scale * ( max - min ); /* [min, max] */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WeaponKnifeMechanic(ecs_iter_t *it) {
|
void WeaponKnifeMechanic(ecs_iter_t *it) {
|
||||||
|
@ -37,9 +35,15 @@ void WeaponKnifeMechanic(ecs_iter_t *it) {
|
||||||
});
|
});
|
||||||
|
|
||||||
Position *dest = ecs_get_mut(world_ecs(), e, Position);
|
Position *dest = ecs_get_mut(world_ecs(), e, Position);
|
||||||
|
const float offset = get_rand_between(-WEAPON_PROJECTILE_POS_OFFSET, WEAPON_PROJECTILE_POS_OFFSET);
|
||||||
dest->x=pos[i].x;
|
dest->x=pos[i].x;
|
||||||
dest->y=pos[i].y+(float)rand()/(float)(RAND_MAX/WEAPON_PROJECTILE_POS_OFFSET);
|
dest->y=pos[i].y;
|
||||||
zpl_printf("offset: %f, %d\n", (float)rand()/(float)(RAND_MAX/WEAPON_PROJECTILE_POS_OFFSET), weapon[i].projectile_count);
|
|
||||||
|
if(zpl_abs(input[i].hx) > 0)
|
||||||
|
dest->y += offset;
|
||||||
|
|
||||||
|
if(zpl_abs(input[i].hy) > 0)
|
||||||
|
dest->x += offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
weapon[i].spawn_delay = WEAPON_KNIFE_SPAWN_DELAY;
|
weapon[i].spawn_delay = WEAPON_KNIFE_SPAWN_DELAY;
|
||||||
|
|
Loading…
Reference in New Issue