0

我使用 Camera2dBundle 将精灵和背景导入到我正在设置的场景中。但我不确定如何独立于精灵移动来移动相机。基本上我不希望相机跟随玩家。无论用户输入如何,我都希望它不断向一个方向移动。我试过了:

fn move_camera(mut camera: Query<&mut Transform, With<Camera>>)   {
  
     for mut transform in camera.iter_mut() {
        
            transform.translation.x += 5.0; 
     }  

然而,这会移动玩家的 x 位置

我看到变换是由这些项目组成的:

Transform { translation: Vec3(0.0, 0.0, 999.9), rotation: Quat(0.0, 0.0, 0.0, 1.0), scale: Vec3(1.0, 1.0, 1.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();

有一个更好的方法吗?我可以添加要转换的项目吗?或者我可以进行哪些修改?

4

1 回答 1

0

解决了。并不是我真正想要的答案,而是简单地为玩家添加一个相反方向的动作就可以了。

// 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();
于 2021-05-03T01:53:39.087 回答