如何在 Bevy 中任意移动用户输入的相机

问题描述

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

@app.route('/addTran',methods=["POST"])
def addTran():
    if request.method == "POST":
        tran = request.get_json(force=True)
        with open('/home/matt/Desktop/info.txt','w') as w:
            w.write(str(tran))

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

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

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

这是我接受用户输入的方式:

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