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);
}
} случаются поддёргивания и рванное движение.