如何在Android的Rajawali虚拟现实框架中移动相机?

时间:2015-02-25 07:29:42

标签: android opengl-es rajawali google-cardboard virtual-reality

这是Rajawali VR例子的链接:

https://github.com/MasDennis/RajawaliVR

我想添加一个功能,用户可以在场景中移动相机,就像反恐精英等FPS游戏一样。

所以,我在RajawaliVRExampleActivity的onCreate方法中编写了这段代码:

/**this is the method*/ 
@Override
public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    super.onCreate(savedInstanceState);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    mRenderer = new RajawaliVRExampleRenderer(this);
    mRenderer.setSurfaceView(mSurfaceView);
    setRenderer(mRenderer);

    /**this is what I write*/
    final Handler handler = new Handler();
    Runnable runnable = new Runnable() {
        int i = 1;
        @Override
        public void run() {
            mRenderer.getCurrentCamera().setZ(i--);
            Log.i("i = ", ""+i);
            handler.postDelayed(this,2000);
        }
    };
    handler.postDelayed(runnable,2000);
}

我认为在我运行程序后它会每两秒向前移动一次,但左侧和右侧之间存在差异。

那么,谁能告诉我如何正确移动相机?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并设法通过修改RajiwaliSideBySideRenderer课程并使mCameraLeftmCameraRight公开来解决问题,以便能够修改每个人的位置手动

我确定有一个更好的解决方案,而且到目前为止,我试图找到一种方法来强制同时更新两个摄像机,但其中一个被修改,但我&#39 ;我还在试图弄清楚如何。