Add simple friction
parent
aa2125c8f6
commit
0daa45f7a1
12
scene_impl.c
12
scene_impl.c
|
@ -65,8 +65,7 @@ static void movement_update_system(Scene_t* scene)
|
||||||
sc_map_foreach_value(&scene->ent_manager.entities_map[PLAYER_ENT_TAG], p_player)
|
sc_map_foreach_value(&scene->ent_manager.entities_map[PLAYER_ENT_TAG], p_player)
|
||||||
{
|
{
|
||||||
CTransform_t* p_ctransform = get_component(&scene->ent_manager, p_player, CTRANSFORM_COMP_T);
|
CTransform_t* p_ctransform = get_component(&scene->ent_manager, p_player, CTRANSFORM_COMP_T);
|
||||||
p_ctransform->accel.x = data->player_dir.x * 200 * 1.0 / mag;
|
p_ctransform->accel = Vector2Scale(Vector2Normalize(data->player_dir), 600);
|
||||||
p_ctransform->accel.y = data->player_dir.y * 200 * 1.0 / mag;
|
|
||||||
}
|
}
|
||||||
data->player_dir.x = 0;
|
data->player_dir.x = 0;
|
||||||
data->player_dir.y = 0;
|
data->player_dir.y = 0;
|
||||||
|
@ -76,9 +75,12 @@ static void movement_update_system(Scene_t* scene)
|
||||||
CTransform_t * p_ctransform;
|
CTransform_t * p_ctransform;
|
||||||
sc_map_foreach_value(&scene->ent_manager.component_map[CTRANSFORM_COMP_T], p_ctransform)
|
sc_map_foreach_value(&scene->ent_manager.component_map[CTRANSFORM_COMP_T], p_ctransform)
|
||||||
{
|
{
|
||||||
p_ctransform->velocity = Vector2Add(
|
p_ctransform->velocity = Vector2Scale(
|
||||||
p_ctransform->velocity,
|
Vector2Add(
|
||||||
Vector2Scale(p_ctransform->accel, delta_time)
|
p_ctransform->velocity,
|
||||||
|
Vector2Scale(p_ctransform->accel, delta_time)
|
||||||
|
),
|
||||||
|
0.95
|
||||||
);
|
);
|
||||||
|
|
||||||
// Store previous position before update
|
// Store previous position before update
|
||||||
|
|
Loading…
Reference in New Issue