Hay all i want to fix a problem that is my background is not moving i dont 
know what is problem can some one found or tell me how to fix it
here i am going to give all code of three class that i code which are main 
class for moving background using SurfaceHolder, Thread and bitmapFactory

here is the code for GamePanal class:

public class GamePanal1 extends SurfaceView implements SurfaceHolder.Callback{

    public MThread mainThread;
    public boolean Pause_Game;
    private BackGroud backGroud;
    public float fishSpeed;

    public GamePanal1(Context context, Game game, int screenwidth) {
        super(context);
        getHolder().addCallback(this);
        mainThread = new MThread(getHolder(), this);

        backGroud = new BackGroud(BitmapFactory.decodeResource(getResources(), 
R.drawable.bc), screenwidth, this);
        setFocusable(true);
        fishSpeed = screenwidth/2.f;

    }


    @Override
    public boolean onTouchEvent(MotionEvent event){

        return super.onTouchEvent(event);
    }

    void Draw(Canvas canvas){
        if(!Pause_Game){
            if(canvas!=null){
                backGroud.draw(canvas);
            }
        }



    }

    void Update(float dt){
        backGroud.update(dt);

    }


    @Override
    public void surfaceCreated(SurfaceHolder holder) {

        // here i am confuse will look in future if any problem occurs
        mainThread.runningMethod(true);
        mainThread.start();


    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int 
height) {

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        boolean retry = true;
        while (retry){
            try {
                mainThread.join();
                retry= false;
            }catch (InterruptedException ex){

            }

        }

    }
}




Code for background class:

public class BackGroud {

    Bitmap BackbitMap;
    int x,y;
    int ScreenWth;
    int Count_backgroud;
    GamePanal1 rootGamePanal1;


    public BackGroud(Bitmap bitmap, int screen_w, GamePanal1 gamePanal1){
        this.BackbitMap = bitmap;
        this.x = 0;
        this.y = 0;
        this.ScreenWth = screen_w;
        Count_backgroud = ScreenWth/BackbitMap.getWidth()+1;
        this.rootGamePanal1 = gamePanal1;


    }

    public void draw(Canvas canvas){
        for(int i = 0; i<Count_backgroud+1; i++){
            if(canvas!=null){
                canvas.drawBitmap(BackbitMap, BackbitMap.getWidth()*i++, y, 
null);
            }
            if (Math.abs(x)>BackbitMap.getWidth()){
                x = x + BackbitMap.getWidth();

            }
        }
    }

    public void update(float dt){
        x = (int)(x - rootGamePanal1.fishSpeed*dt);

    }
}


And code of Thread Class:

public class MThread extends Thread {

    private SurfaceHolder surfaceHolder;
    private GamePanal1 gamePanal1;
    private boolean runningVar;
    float dt;

    public MThread(SurfaceHolder holder, GamePanal1 gamePanal1){
        this.surfaceHolder = holder;
        this.gamePanal1 = gamePanal1;
        dt = 0;

    }

    void runningMethod(boolean runining){

        this.runningVar = runining;
    }

    @Override
    public void run(){
        Canvas canvas;
        while (runningVar){
            if(!gamePanal1.Pause_Game){
                long startDraw = System.currentTimeMillis();
                canvas = null;
                try{
                    canvas = this.surfaceHolder.lockCanvas();
                    synchronized (surfaceHolder){
                        gamePanal1.Update(dt);
                        gamePanal1.Draw(canvas);
                    }

                }
                finally {

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


                }

                long endDraw = System.currentTimeMillis();
                dt = (endDraw-startDraw)/10000.f;
            }


        }
        //super.run();

    }

}


Can some one tell me what is problem in it

why my back ground is not moving left from right

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
To post to this group, send email to android-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/d86526a1-0f96-4207-bd3e-a1ee5536c22e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to