Rust 如何在Bevy中移动任意用户输入的相机
我已经使用Camera2dBundle将精灵和背景导入到我正在设置的场景中。但是我不知道如何独立于精灵的动作来移动相机。基本上我不想让摄像机跟着播放器。我希望无论用户输入如何,它都能不断朝一个方向移动。 我试过:Rust 如何在Bevy中移动任意用户输入的相机,rust,bevy,Rust,Bevy,我已经使用Camera2dBundle将精灵和背景导入到我正在设置的场景中。但是我不知道如何独立于精灵的动作来移动相机。基本上我不想让摄像机跟着播放器。我希望无论用户输入如何,它都能不断朝一个方向移动。 我试过: fn move_camera(mut camera: Query<&mut Transform, With<Camera>>) { for mut transform in camera.iter_mut() {
fn move_camera(mut camera: Query<&mut Transform, With<Camera>>) {
for mut transform in camera.iter_mut() {
transform.translation.x += 5.0;
}
以下是我接受用户输入的方式:
if keyboard_input.pressed(KeyCode::Right) {
transform.translation.x += 2.0 * 5.0;
transform.rotation = Quat::from_rotation_y(0.0).into();
*atlas = player.run.clone();
有更好的方法吗?我可以添加要转换的项吗?或者我可以做什么修改?解决了这个问题。这并不是我想要的答案,只是简单地为玩家添加一个相反方向的动作就行了
// added
transform.translation.x -= -1.0 * 5.0;
//
if keyboard_input.pressed(KeyCode::Right)
transform.translation.x += 2.0 * 5.0;
transform.rotation =
Quat::from_rotation_y(0.0).into();
*atlas = player.run.clone();
你能提供一个简单的例子吗?我意识到创建一个MWE是很难做到的,但它将有助于回答这个问题。顺便说一句,我想你可以把相机的参考从播放器改为“世界”,这应该是允许的。
// added
transform.translation.x -= -1.0 * 5.0;
//
if keyboard_input.pressed(KeyCode::Right)
transform.translation.x += 2.0 * 5.0;
transform.rotation =
Quat::from_rotation_y(0.0).into();
*atlas = player.run.clone();