From 653b499cc4c8fff593b0305c7f4577ee1d3f5f49 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 28 Feb 2022 21:56:54 -0600 Subject: [PATCH] acceleration to the player --- src/entity/components/movement.onyx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/entity/components/movement.onyx b/src/entity/components/movement.onyx index a1585a3..264ee51 100644 --- a/src/entity/components/movement.onyx +++ b/src/entity/components/movement.onyx @@ -24,15 +24,19 @@ MovementComponent :: struct { use component: Component; controls : Player_Controls; facing := Facing.Up; + velocity: Vector2; update :: (movement: ^MovementComponent, use this: ^Entity, dt: f32) { - speed :: 128.0f; - - delta: Vector2; - if is_key_down(movement.controls.left) { delta.x -= speed * dt; movement.facing = .Left; } - if is_key_down(movement.controls.right) { delta.x += speed * dt; movement.facing = .Right; } - if is_key_down(movement.controls.up) { delta.y -= speed * dt; movement.facing = .Up; } - if is_key_down(movement.controls.down) { delta.y += speed * dt; movement.facing = .Down; } + acc: Vector2; + if is_key_down(movement.controls.left) { acc.x -= 1; movement.facing = .Left; } + if is_key_down(movement.controls.right) { acc.x += 1; movement.facing = .Right; } + if is_key_down(movement.controls.up) { acc.y -= 1; movement.facing = .Up; } + if is_key_down(movement.controls.down) { acc.y += 1; movement.facing = .Down; } + + speed :: 800.0f; + movement.velocity += acc * speed * dt; + delta := movement.velocity * dt + acc * 0.5 * dt * dt; + movement.velocity *= 0.9; dist := math.max(size.x, size.y) * 2; walls := scene->query_by_flags(.{pos.x - dist, pos.y - dist, dist * 2, dist * 2}, .Solid); -- 2.25.1