2

私のプログラムには、ボールを継続的にバウンドさせる次のメソッドがあります。変更を試みましたが、ボールを GUI の下部で停止させることができないようです。私の主な目標は、実際のボールをバウンドさせているかのようにメソッドをシミュレートすることです。

private void updateDelta() {
        final int minimumMovement = 5;
        final int maxExtra = 10;
        deltaY = minimumMovement + (int) (Math.random() * maxExtra);
    }

    public void verticalBounce(Container container) {

        // controls vertical ball motion
        if (upDown) {
            y += deltaY;

            if (y >= getHeight()) {
                upDown = false;
                updateDelta();
            }
        } else {
            y += -deltaY;
            if (y <= 0) {
                upDown = true;
                updateDelta();
            }
        }

    }

アップデート:

ボールがバウンドしてグイの底で止まります。

public void verticalBounce(Container container) {

    deltaY = deltaY - gravity;
    y = y + deltaY;

    if (y > getHeight()) {
        y = getHeight(); // reset location
        deltaY = (int) (deltaY * -0.9); // slows down ball
    }

}
4

3 に答える 3