SurfaceView gameloop

Я новичок и пишу игру: гонки. на данный момент я столкнулся с проблемой лагов и fps. Я не знаю, как реализовать gameloop с SurfaceView. А также у меня есть движущийся фон, но он подлагивает, и я понятия не имею, как сделать так, что фон стал плавным и бесшовным, как и движение машин(Bitmap)

while (running) {


        Canvas canvas=null;
            try {
                canvas = surfaceHolder.lockCanvas();
                synchronized (surfaceHolder) {
                    background1.update(mc);
                    background1.draw(canvas);
                    canvasDraw(canvas,all_cars);
                    player.getInfo(towardPointX, uiClicked);
                    moveCars(all_cars);
                    Collision(all_cars);
                    running = player.isGameOn();

                }
            } finally {
                if (canvas != null) {
                    surfaceHolder.unlockCanvasAndPost(canvas);
                }
            }

        }}}

Background

public class Background {
private Bitmap bitmap_1;
private Bitmap bitmap_2;
private double x, x1, y, y1;

public Background(Bitmap bitmap_1, Bitmap bitmap_2, double x, double x1, double y, double y1) {
    this.bitmap_1 = bitmap_1;
    this.bitmap_2 = bitmap_2;
    this.x = x;
    this.x1 = x1;
    this.y = y;
    this.y1 = y1;
}

public void update(int mc){
    setY(getY() + 200*mc/1000);
    setY1(getY1()+200*mc/1000);

    if (getY()>= bitmap_1.getHeight()){
        setY(-bitmap_1.getHeight());

    }
    if (getY1() > bitmap_1.getHeight()){
        setY1(-bitmap_1.getHeight());
    }

}
public void draw(Canvas canvas){
    canvas.drawBitmap(getBitmap_1(), 0, (float) getY(), null);
    canvas.drawBitmap(getBitmap_2(), 0, (float) getY1(), null);
}

} случаются поддёргивания и рванное движение.


Ответы (0 шт):