Android 2-я игра холста: проблема Дрожания кадр/с

Я основывал свою игру прочь лунной демонстрации высаживающегося на берег, хотя в большой степени изменено, и я могу двигаться 40-50fps, но проблема - она, колеблется между 40-50fps так, что она заставляет движущуюся графику дрожать! Ее очень раздражающее и заставляет мою игру выглядеть действительно поганой когда на самом деле его выполнение в хорошей частоте кадров.

Я пытался установить приоритет потока выше, но это просто сделало его хуже... теперь он будет колебаться между 40-60fps...

Я думал об ограничении кадр/с приблизительно к 30 так, чтобы это было постоянно. Действительно ли это - хорошая идея, и у кого-либо еще есть опыт или другое решение?

Спасибо!

Это - мой цикл выполнения

@Override
    public void run() {
        while (mRun) {
            Canvas c = null;
            try {
                c = mSurfaceHolder.lockCanvas(null);
                synchronized (mSurfaceHolder) {
                    if(mMode == STATE_RUNNING){

                        updatePhysics();
                    }
                    doDraw(c);
                }
            } finally {
                // do this in a finally so that if an exception is thrown
                // during the above, we don't leave the Surface in an
                // inconsistent state
                if (c != null) {
                    mSurfaceHolder.unlockCanvasAndPost(c);
                }
            }
        }
        }

private void updatePhysics() {

        now = android.os.SystemClock.uptimeMillis();

        elapsed = (now - mLastTime) / 1000.0;

        posistionY += elapsed * speed;
        mLastTime = now;
}
5
задан Cameron 22 July 2010 в 22:10
поделиться