player physics!!!!

This commit is contained in:
Schrottkatze 2024-11-23 19:00:54 +01:00
parent 6cdeb38ba4
commit 3f47f0305e
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
2 changed files with 33 additions and 11 deletions

View file

@ -34,7 +34,12 @@ enum PlayerAnimations {
Walk,
}
pub fn add_player(
// fn move_player(
// kb_input: Res<ButtonInput<KeyCode>>,
// mut query:
// )
fn add_player(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<ColorMaterial>>,
@ -76,7 +81,8 @@ pub fn add_player(
),
);
commands.spawn((
commands
.spawn((
Player,
AnimBundle {
tag: PlayerAnimations::Idle,
@ -86,5 +92,13 @@ pub fn add_player(
transform: (*player_coords).into(),
..Default::default()
},
));
))
.insert((
RigidBody::Dynamic,
player_coords.get_collider(),
Velocity::default(),
))
.insert(KinematicCharacterController {
..Default::default()
});
}

View file

@ -24,6 +24,14 @@ pub struct PlayerCoords {
block_size: f32,
}
impl PlayerCoords {
pub fn get_collider(&self) -> Collider {
let size = self.block_size * PLAYER_SIZE_FRACTION * 0.5;
Collider::cuboid(size, size)
}
}
impl From<PlayerCoords> for Transform {
fn from(val: PlayerCoords) -> Self {
let PlayerCoords { x, y, block_size } = val;