Я делаю игру для понга для MiniLD, используя Slick2d (и, следовательно, java), но когда я пытаюсь сделать ИИ, это не сработает. Я получаю лопасть, мерцающую между двумя позициями. Мне нужна помощь. Вот код, который я использую.
static int maxSpeed = 3;
(...)
float ypos = ball.getCenterY() - (paddleCPU.getY() + maxSpeed);
paddleCPU.setY(ypos);
Возможно, попытайтесь фактически ограничить скорость изменения y до -maxSpeed и +maxSpeed:
float dy = ball.getCenterY() - paddleCPU.getY());
dy = Math.max(-maxSpeed, Math.min(maxSpeed, dy));
paddleCPU.setY(paddleCPU.getY() + dy);
maxSpeed
, я установил maxSpeed
на 0,8, и теперь это работает. Не слишком быстро, но не слишком медленно. Просто отлично;)