2012-07-04 123 views
2

我想爲我的android遊戲製作一個浮動操縱桿,但我無法這樣做。 這裏是我的onTouch()函數:拖動圖像

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    int action = event.getAction(); 
    c = holder.lockCanvas(); 
    switch (action & MotionEvent.ACTION_MASK) { 
    case MotionEvent.ACTION_DOWN: 
     float x = event.getX(); 
     float y = event.getY(); 
     Log.d("joystick", " " + x + " " + y); 
     ondraw(c, x, y); 
     break; 

    case MotionEvent.ACTION_MOVE: 
     d = holder.lockCanvas(); 
     float xdrag = event.getX(); 
     float ydrag = event.getY(); 
     Log.d("joystick move", " " + xdrag + " " + ydrag); 
     ondraw(d, xdrag, ydrag); 
     break; 
    } 

    return false; 
} 

由於某種原因,圖像不拖。有人可以在這裏說出問題並幫助我嗎?

我的OnDraw是:

protected void ondraw(Canvas c, float x, float y) { 

    c.drawColor(Color.BLACK); 
    c.drawBitmap(bmpback, x - (bmpback.getWidth()/2), 
      y - (bmpback.getHeight()/2), null); 
    c.drawBitmap(bmpfront, x - (bmpfront.getWidth()/2), 
      y - (bmpfront.getHeight()/2), null); 
    holder.unlockCanvasAndPost(c); 
} 
+0

發佈的OnDraw內容。 – Blackbelt

回答

1

拖動圖像的東西容易,因爲這個工程

@Override 
public boolean onTouchEvent(MotionEvent event) { 

    x = event.getX(); 
    y = event.getY(); 
    //Log.d("joy", "x = " + x + "y =" + y); 

    invalidate(); 
    return true; 
} 

@Override 
protected void onDraw(Canvas canvas) { 

    canvas.drawBitmap(joyback, x - joyback.getWidth()/2, 
      y - joyback.getHeight()/2, null); 



    super.onDraw(canvas); 
}