improvements to collision solvers

This commit is contained in:
Sara 2023-10-19 13:51:17 +02:00
parent 169fd63d9e
commit aa9a51dc76
4 changed files with 40 additions and 40 deletions

View file

@ -20,7 +20,7 @@ void player_input_v(int val) {
void player_spawn(Player* self, Vector at) {
player_start(self);
self->transform.position = at;
rigidbody_get_transform(self->rigidbody)->position = at;
}
void player_start(Player* self) {
@ -37,6 +37,7 @@ void player_start(Player* self) {
sprite_set_origin(self->sprite, (Vector){0.25f, 1.f});
self->rigidbody = rigidbody_make(Player_as_Transformable(self));
rigidbody_set_mass(self->rigidbody, 10.f);
float ex_w = 0.1f;
float h = .75f;
@ -56,8 +57,10 @@ void player_start(Player* self) {
void player_update(Player* self, float dt) {
Vector velocity = rigidbody_get_velocity(self->rigidbody);
Vector velocity_target = {directional.x, velocity.y};
rigidbody_accelerate(self->rigidbody, vmulff(vsubf(velocity_target, velocity), 20.f));
rigidbody_accelerate(self->rigidbody, (Vector){0.0f, 20.f});
rigidbody_accelerate(self->rigidbody, vmulff(vsubf(velocity_target, velocity), 20.f), 0);
rigidbody_accelerate(self->rigidbody, (Vector){0.0f, 20.f}, 0);
LOG_INFO("%f %f", self->transform.position.x, self->transform.position.y);
}
void player_collision(Player* self, Collision hit) {
@ -71,6 +74,10 @@ Transform* player_get_transform(Player* self) {
return &self->transform;
}
Transform* player_get_rigidbody_transform(Player* self) {
return rigidbody_get_transform(self->rigidbody);
}
RigidBody* player_get_rigidbody(Player* self) {
return self->rigidbody;
}