Ciao a tutti,
Ho iniziato da poche settimane a programmare in Java, per Android e sono nuovo del forum quindi se il problema è banale o se ho sbagliato sezione mi scuso in anticipo. Dopo aver creato alcune piccole App con Eclipse sto programmando un piccolo gioco. Sto organizzando lo sfondo a livelli che si muovono a velocità differenti come in giochi quali Canabalt o simili. Il problema è che se vado a sovrapporre fino a 3 immagini di sfondo il gioco funziona bene mentre se ne vado a sovrapporre una quarta, l'applicazione inizia ad andare 'a scatti', i livelli si muovono pianissimo ed a volte stanno addirittura fermi. allego parte del codice nella speranza che possiate dirmi il motivo.
public class MyView extends View{
private float xbg1,velbg1,xbg2,velbg2,xbg3,velbg3,xbg4,velbg4;
private Bitmap bg1,bg2,bg3,bg4;
public MyView(Context context) {
super(context);
bg1=BitmapFactory.decodeResource(getResources(), R.drawable.bg1);
bg2=BitmapFactory.decodeResource(getResources(), R.drawable.bg2);
bg3=BitmapFactory.decodeResource(getResources(), R.drawable.bg3);
bg4=BitmapFactory.decodeResource(getResources(), R.drawable.bg4);
xbg1=xbg2=xbg3=xbg4=0;
velbg1=-1;
velbg2=-2;
velbg3=-4;
velbg4=-8;
} // end constructor MyView
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(bg1, xbg1, 0, null);
xbg1+=velbg1;
if(xbg1<0-1067)xbg1=0;
canvas.drawBitmap(bg2, xbg2, 0, null);
xbg2+=velbg2;
if(xbg2<0-1067)xbg2=0;
canvas.drawBitmap(bg3, xbg3, 0, null);
xbg3+=velbg3;
if(xbg3<0-1067)xbg3=0;
canvas.drawBitmap(bg4, xbg4, 0, null);
xbg4+=velbg4;
if(xbg4<0-1067)xbg4=0;
invalidate();
} // end OnDraw
xbg sta per la coordinata x dell'immagine di sfondo mentre velbg per la sua velocità di scorrimento.
Grazie in anticipo