2015-03-26 2 views
1

Я делаю игру для понга для MiniLD с помощью Slick2d (и, следовательно, java), но когда я пытаюсь сделать ИИ, это не сработает. Я получаю лопасть, мерцающую между двумя позициями. Мне нужна помощь. Вот код, который я использую.Я получаю странный сбой при попытке сделать ИИ для весла для понга

static int maxSpeed = 3; 

(...) 

float ypos = ball.getCenterY() - (paddleCPU.getY() + maxSpeed); 
paddleCPU.setY(ypos); 
+0

Вы должны показать больше кода. –

+0

Я думаю, что это все, что нужно. Что бы вы хотели увидеть? – pta2002

+0

Нет, спасибо. Я действительно хочу знать, как я могу это исправить. Хотя я думаю, что у меня есть ответ. – pta2002

ответ

1

Возможно попробовать на самом деле ограничивает скорость изменения у, чтобы быть между -maxSpeed ​​и + MAXSPEED:

float dy = ball.getCenterY() - paddleCPU.getY()); 
dy = Math.max(-maxSpeed, Math.min(maxSpeed, dy)); 
paddleCPU.setY(paddleCPU.getY() + dy); 
+0

Ithink, что делает его непревзойденным (за то, что я пробовал, хотя я ужасен в понге, поэтому я не могу сказать: P) – pta2002

+0

Nevermind, я установил 'maxSpeed' в 0.8 и теперь он работает. Не слишком быстро, но не слишком медленно. Просто отлично;) – pta2002

+0

@ pta2002 почему бы не изменить maxSpeed ​​на случайное число в определенном диапазоне. – CodeCamper