add mass to wheels

This commit is contained in:
Joe Ardent 2025-04-06 21:41:51 -07:00
parent eaba0edcd2
commit 722c40a259
2 changed files with 13 additions and 6 deletions

View file

@ -226,6 +226,9 @@ fn wheel_mesh(
Mesh3d(meshes.add(tire_mesh)),
MeshMaterial3d(materials.add(wheel_material.clone())),
xform,
Collider::sphere(WHEEL_RADIUS),
ColliderDensity(0.5),
CollisionLayers::NONE,
TransformInterpolation,
wheel,
));

View file

@ -1,7 +1,7 @@
use avian3d::{math::Scalar, prelude::*};
use bevy::prelude::*;
const DRAG_COEFF: Scalar = 0.1;
const DRAG_COEFF: Scalar = 0.00001;
#[derive(Resource, Default, Debug, Reflect)]
#[reflect(Resource)]
@ -20,9 +20,9 @@ pub struct CatControllerSettings {
impl Default for CatControllerSettings {
fn default() -> Self {
Self {
kp: 16.0,
kd: 2.0,
ki: 0.9,
kp: 45.0,
kd: 15.0,
ki: 1.0,
}
}
}
@ -272,7 +272,7 @@ mod systems {
let bike_vel = bike_vel.0;
let dt = time.delta().as_secs_f32();
let max_thrust = 2000.0;
let max_thrust = 5000.0;
let yaw_angle = -yaw_to_angle(input.yaw);
for (mut state, config, wheel) in wheels.iter_mut() {
@ -345,7 +345,11 @@ mod systems {
let dir = vel.normalize_or_zero();
let drag = -dspeed * dt * DRAG_COEFF * dir;
if speed > 1.0 {
force.apply_force_at_point(drag, xform.translation, xform.translation);
force.apply_force_at_point(
drag,
xform.translation - (0.25 * *xform.down()),
xform.translation,
);
}
bevy::log::debug!("speed: {}, drag force: {}", speed, drag.length());