0

私は画面にボールを持っています.I want action_down を実装すると、ボールはこの位置に移動します.これは私のコードです:

 public boolean onTouchEvent(MotionEvent event){

        if(event.getAction()==MotionEvent.ACTION_DOWN){
            x1 = (int) event.getX();
            y1 = (int) event.getY();

            float dx = x1-x;
            float dy = y1-y;
            float d = (float)Math.sqrt(dx*dx+dy*dy);
            vx = dx*4/d;
            vy = dy*4/d;
        }
}

および onDraw:

protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.BLACK);

        Matrix matrix = new Matrix();
        matrix2.postTranslate(x - bitmap.getWidth()/2, y - bitmap.getHeight()/2);
        x = x+vx ;
        y = y+vy ;

        canvas.drawBitmap(bitmap, matrix, null);
}

すると、ボールは action_down の位置に移動しますが、なぜボールが action_down の位置にあったのに止まらないのでしょうか?

私を助けてください?ありがとうございました?

4

1 に答える 1

0

vx、vy の型を int に変更

    vx = (int)dx*4/d;
    vy = (int)dy*4/d;

そして、これを使用します

    if(Math.abs(x - x1) <= Math.abs(vx) 
        && Math.abs(y - y1) <= Math.abs(vy)){ 
            vx = 0; 
            vy = 0; 
            x = x1;
            y = y1;
    }
于 2012-04-22T09:44:16.047 に答える