Прыгающий мяч в Android пропускает скорость - PullRequest
0 голосов
/ 03 июля 2019

У меня есть шар, который движется только по прямой линии и отскакивает от верха и низа экрана.Каждый раз, когда это происходит, скорость уменьшается на 2в следующий раз он ударяется о стену до 0.

Почему это так?

private fun update() {
    if (ball.posy > 0) {
        if (ball.direction == "+") {
            ball.posy += ball.velocity
        } else {
            ball.posy -= ball.velocity
        }
    }
    if (ball.posy >= height - 50) {
        ball.direction = "-"
        ball.velocity -= 2
    } else if (ball.posy <= 50) {
        ball.direction = "+"
        ball.velocity -= 2
    }
    invalidate()
}

1 Ответ

0 голосов
/ 03 июля 2019

Можете ли вы попробовать следующее:

private fun update() {
    if (ball.posy > 0) {
        if (ball.direction == "+") {
            ball.posy = min(ball.posy + ball.velocity, height - 50)
        } else {
            ball.posy = max(ball.posy - ball.velocity, 50)
        }
    }
    if (ball.posy >= height - 50) {
        ball.direction = "-"
        ball.velocity -= 2
    } else if (ball.posy <= 50) {
        ball.direction = "+"
        ball.velocity -= 2
    }
    invalidate()
}
...