diff --git a/src/game/player.rs b/src/game/player.rs index 25f73a1..b3adb59 100644 --- a/src/game/player.rs +++ b/src/game/player.rs @@ -34,7 +34,12 @@ enum PlayerAnimations { Walk, } -pub fn add_player( +// fn move_player( +// kb_input: Res>, +// mut query: +// ) + +fn add_player( mut commands: Commands, mut meshes: ResMut>, mut materials: ResMut>, @@ -76,15 +81,24 @@ pub fn add_player( ), ); - commands.spawn(( - Player, - AnimBundle { - tag: PlayerAnimations::Idle, - mgr: anims, - }, - SpriteBundle { - transform: (*player_coords).into(), + commands + .spawn(( + Player, + AnimBundle { + tag: PlayerAnimations::Idle, + mgr: anims, + }, + SpriteBundle { + transform: (*player_coords).into(), + ..Default::default() + }, + )) + .insert(( + RigidBody::Dynamic, + player_coords.get_collider(), + Velocity::default(), + )) + .insert(KinematicCharacterController { ..Default::default() - }, - )); + }); } diff --git a/src/game/scene.rs b/src/game/scene.rs index c131c67..00f4d3f 100644 --- a/src/game/scene.rs +++ b/src/game/scene.rs @@ -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 for Transform { fn from(val: PlayerCoords) -> Self { let PlayerCoords { x, y, block_size } = val;