Бильярдная игра и Ball Collision - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь столкнуться с мячом между экранами (сверху, снизу, слева, справа).

Все работает корректно, когда я использую свою программу, направление изменения шара при обнаружении столкновения. Но я пытаюсь заставить шар остановиться и потерять энергию после большого количества столкновений, чтобы наконец остановить шар, как в бильярдной игре.

Для этого я использую переменную с именем ускорение, чтобы уменьшить скорость каждый раз, когда есть столкновение, но когда я запускаю его, оно работает, но я хочу иметь возможность уменьшить скорость, даже если столкновения нет.

Потому что я вынужден ждать до нового столкновения, чтобы мяч потерял скорость и это совсем не реально c

publi c класс Main {

 static float velocityX = -1;
 static float velocityY = -1;
 static float acceleration = 0.8f;

 public static void main(String[] args) {

    ImageView imvBalle;
    View lineTop;
    View lineBottom;
    View lineLeft;
    View lineRight;

    timer = new Timer();
    timer.schedule(new timerTask){
        @override public void fonction(){

                imvBalle.setX(imvBalle.getX() + velocitX);
                imvBalle.setY(imvBalle.getY() + velocityY);

                if(Collision(imvBalle, lineTop)){
                    velocityY = - (acceleration * velocityY);
                }
                if(Collision(imvBalle, lineBottom)){
                    velocityY = - (acceleration * velocityY);
                }
                if(Collision(imvBalle, lineLeft)){
                    velocityX = - (acceleration * velocityX);
                }
                if(Collision(imvBalle, lineRight)){
                    velocityX = - (acceleration * velocityX);
                }

        }
    },100,100);

 }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...