From 0896ccf6913c77251d38054646f0a02af4f3db98 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sat, 24 May 2025 00:43:44 -0400 Subject: [PATCH] Fix faster diagonal acceleration for the player Also always accelerate the player using the same force, so that bigger players aren't overpowered. --- src/game/objects.rs | 6 +++++- src/game/runtime.rs | 36 ++++++++++++++++++++++++++---------- src/game/setup.rs | 17 ++++++++++------- 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/game/objects.rs b/src/game/objects.rs index 2fbe122..da4f096 100644 --- a/src/game/objects.rs +++ b/src/game/objects.rs @@ -6,9 +6,13 @@ use bevy::prelude::*; #[require(Collider, Mesh2d, MeshMaterial2d, Restitution = Restitution::new(1.0), RigidBody, TransformInterpolation, Transform)] struct GameObject; +/// Radius of a ball +#[derive(Component, Default)] +pub struct Radius(pub f32); + /// A basic ball with which to interact #[derive(Component, Default)] -#[require(GameObject, RigidBody = RigidBody::Dynamic)] +#[require(GameObject, RigidBody = RigidBody::Dynamic, Radius)] pub struct Ball; /// The controllable ball diff --git a/src/game/runtime.rs b/src/game/runtime.rs index 81b1ddf..ab393ad 100644 --- a/src/game/runtime.rs +++ b/src/game/runtime.rs @@ -1,3 +1,5 @@ +use core::f32; + use avian2d::prelude::*; use bevy::{ input::mouse::{AccumulatedMouseScroll, MouseScrollUnit}, @@ -5,32 +7,46 @@ use bevy::{ prelude::*, }; -use super::objects::Player; +use super::objects::{Player, Radius}; /// Move the player character based on the keyboard input pub fn move_player( time: Res