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