From: Brendan Hansen Date: Tue, 1 Mar 2022 03:56:54 +0000 (-0600) Subject: acceleration to the player X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=653b499cc4c8fff593b0305c7f4577ee1d3f5f49;p=bar-game.git acceleration to the player --- 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);