Я пытаюсь столкнуться с мячом между экранами (сверху, снизу, слева, справа).
Все работает корректно, когда я использую свою программу, направление изменения шара при обнаружении столкновения. Но я пытаюсь заставить шар остановиться и потерять энергию после большого количества столкновений, чтобы наконец остановить шар, как в бильярдной игре.
Для этого я использую переменную с именем ускорение, чтобы уменьшить скорость каждый раз, когда есть столкновение, но когда я запускаю его, оно работает, но я хочу иметь возможность уменьшить скорость, даже если столкновения нет.
Потому что я вынужден ждать до нового столкновения, чтобы мяч потерял скорость и это совсем не реально 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);
}
}