Это охватывает случайное местоположение :
Вычислить область, в которой разрешено появляться мячом:
int x = RIGHT_WALL - LEFT_WALL;
int y = DOWN_WALL - UP_WALL;
Вычтите размер шара:
x -= ball.getWidth(null);
y -= ball.getHeight(null);
Выберите случайное место:
Random r = new Random(); // java.util.Random
x = r.nextInt(x);
y = r.nextInt(y);
Переместить координаты в начало верхнего левого угла стены:
x += LEFT_WALL;
y += UP_WALL;
Теперь x
и y
- допустимые позиции для появления мяча.
Примечание : Помните, что x
и y
, которые я здесь использовал, НЕ ваших учеников. Предполагается, что это локальные переменные.
Похоже, вы сами решили алгоритм для случайного направления.
В вашем методе move()
есть ошибка: вам не важен размер шара при проверке на столкновение. if
s должно выглядеть так:
if (x + ball.getWidth(null) >= RIGHT_WALL)
{
x = RIGHT_WALL - ball.getWidth(null);
moveRandomDirection();
}
if (y + ball.getHeight(null) >= DOWN_WALL)
{
y = DOWN_WALL - ball.getHeight(null);
moveRandomDirection();
}
if (x <= LEFT_WALL)
{
x = LEFT_WALL;
moveRandomDirection();
}
if (y <= UP_WALL)
{
y = UP_WALL;
moveRandomDirection();
}