3

我目前正在 Android 平台上测试我的游戏所需的所有功能。我只修改了 hello-gl2 示例代码,并在两个渲染通道中添加了一些纹理、VBO、FBO 和简单着色器。

问题是,当我让应用程序在不触摸屏幕的情况下运行时,我有大约 35-45 fps。但是如果我开始连续触摸屏幕,渲染就会开始滞后!那么这是一个问题,因为输入和渲染在同一个线程中(正如 a 认为的那样?),甚至可以修复吗?如果我不能解决这个延迟问题,我的游戏可能无法运行得足够好,无法正常玩。(有一些重渲染的东西)

//提前致谢!

4

1 回答 1

1

我对 android 开发相当陌生,但发现触摸处理程序也非常滞后。默认示例是新建一个对象并经常这样做——这势必会让垃圾收集器生气。通过调用'Thread.sleep(10);',我设法让它以一种不那么滞后的方式执行。在运行函数内部。

我想用对象的循环缓冲区替换“new Runnable”会提高性能,但我还没有对此进行调查。我的触摸事件似乎发生在单独的线程上,这可能会导致并发症。

Override public boolean onTouchEvent(final MotionEvent event)
    {
        queueEvent(


        new Runnable()
        {
            public void run()
            {

                int action = event.getAction();
                //do your handling here
                try
                {
                    Thread.sleep(10);
                } catch (InterruptedException e)
                {

                    e.printStackTrace();
                } 

            }
        });
        return true;
    }
于 2011-03-08T19:51:20.473 回答