与墙碰撞并不准确

时间:2017-09-12 23:01:34

标签: android-studio

所以我试图让球撞到墙上并像乒乓球一样反弹。但出于某种原因,当球认为帆布比实际上更小时。 这是我的onDraw代码:

        canvasWidth = canvas.getWidth();
        canvasHeight = canvas.getHeight();
        if (flag) {
            x = (int) canvasWidth;
            y = (int) canvasHeight;
        }
    else
        {
            if (goingRight)
            x=x+5;
            else
            x=x-5;
            if (goingDown)
            y=y+5;
            else
                y=y-5;
        }
        canvas.drawBitmap(ball,x/2,y/2,null);
        if (x>canvasWidth)
            goingRight=false;
        else if (x<0)
        goingRight=true;
    if (y>canvasHeight)
        goingDown=false;
    else if (y<0)
    {
        goingDown=true;
    }




    flag=false;

无法找到解决方法。有谁知道这是什么问题?

1 个答案:

答案 0 :(得分:0)

可能是因为你把球拉到半个半世界。

canvas.drawBitmap(ball,x/2,y/2,null);

我想你想把球画在位图的上/左角但不是在中心。

未经测试!尝试一下......

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