add mass to wheels
This commit is contained in:
parent
eaba0edcd2
commit
722c40a259
2 changed files with 13 additions and 6 deletions
|
@ -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,
|
||||
));
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Reference in a new issue