I get an empty query with that, even though I have an entity with a Transform and a PlayerSpeed
commands.spawn((
PbrBundle {
mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)),
material: materials.add(Color::srgb_u8(124, 144, 255)),
transform: Transform::from_xyz(0.0, 0.5, 0.0),
..default()
},
Player{
movement_speed:PlayerSpeed::new(2.0)
}
));
...
fn player_movement_system(
time: Res<Time>,
keyboard_input: Res<ButtonInput<KeyCode>>,
mut query: Query<(&PlayerSpeed, &mut Transform)>,
) {
for (speed, mut transform) in query.iter_mut() {
if keyboard_input.pressed(KeyCode::KeyZ) {
transform.translation += Vec3::X * speed.0 * time.delta_seconds();
}
if keyboard_input.pressed(KeyCode::KeyQ) {
transform.translation += Vec3::Z * speed.0 * time.delta_seconds();
}
if keyboard_input.pressed(KeyCode::KeyS) {
transform.translation -= Vec3::Z * speed.0 * time.delta_seconds();
}
if keyboard_input.pressed(KeyCode::KeyD) {
transform.translation -= Vec3::X * speed.0 * time.delta_seconds();
}
}
}