improvements to collision solvers
This commit is contained in:
parent
169fd63d9e
commit
aa9a51dc76
4 changed files with 40 additions and 40 deletions
13
src/player.c
13
src/player.c
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue