Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android游戏循环不顺畅_Java_Android_Game Engine_Interpolation - Fatal编程技术网

Java Android游戏循环不顺畅

Java Android游戏循环不顺畅,java,android,game-engine,interpolation,Java,Android,Game Engine,Interpolation,试图使非常简单的游戏循环,一个球在屏幕上(使用插值) 游戏循环: private double FPS = 50; private double TIME_STEP = 1000000000L/FPS; private double MAX_TIME = 1000000000L/5; Canvas canvas; double frameStart = System.nanoTime(); double currentTime = 0;

试图使非常简单的游戏循环,一个球在屏幕上(使用插值)

游戏循环:

    private double FPS = 50;
    private double TIME_STEP = 1000000000L/FPS;
    private double MAX_TIME = 1000000000L/5;

    Canvas canvas;

    double frameStart = System.nanoTime();
    double currentTime = 0;
    double accumulator = 0;
    float ratio = 0;

    while (running){

        currentTime = System.nanoTime();
        accumulator += currentTime - frameStart;

        frameStart = currentTime;

        if(accumulator > MAX_TIME){
            accumulator = MAX_TIME;
        }

        while (accumulator > TIME_STEP){
            screen.update();
            accumulator -= TIME_STEP;
        }

        ratio = Math.min(1f, (float)(accumulator / TIME_STEP));

        canvas = surfaceHolder.lockCanvas();
        screen.render(ratio, canvas);
        surfaceHolder.unlockCanvasAndPost(canvas);

    }
更新方法:

public void update(){
    pY = cY;
    cY -= 0.1f
}
渲染方法:

public void render(float ratio, Canvas canvas){
    canvas.drawCircle(cX * ratio + pX * (1 - ratio),
            cY * ratio + pY * (1 - ratio),
            cR * ratio + pR * (1 - ratio), paint);
}
这一切都在我的设备上运行,为什么?我将FPS更改为25和60,但仍然不平滑。没有插值,游戏循环看起来更好,但这是错误的方式