Я пытаюсь создать ИИ для игры в понг, но контролируемая ИИ лопатка сильно задирается, когда она пытается ударить по мячу.Почему мой панг AI сильно дрожит?
Вот раздел AI моего кода:
function calculateAI() {
if (paddleA.AI) {
if (ball.x + (ball.width/2) <= ctx.canvas.width * 0.4 && ball.directionX == -1) {
if (ball.y + (ball.height/2) >= paddleA.y + (paddleA.height + paddleA.heightModifier * 0.75) && paddleA.y + paddleA.height + paddleA.heightModifier < ctx.canvas.height) {
paddleA.y += paddleA.speed + paddleA.speedModifier;
}
else if (ball.y + (ball.height/2) <= paddleA.y + (paddleA.height + paddleA.heightModifier * 0.25) && paddleA.y > 0) {
paddleA.y -= paddleA.speed + paddleA.speedModifier;
}
}
else {
if (paddleA.y + ((paddleA.height + paddleA.heightModifier)/2) <= (ctx.canvas.height/2) - 50 && paddleA.y + paddleA.height + paddleA.heightModifier < ctx.canvas.height) {
paddleA.y += paddleA.speed + paddleA.speedModifier;
}
else if (paddleA.y + ((paddleA.height + paddleA.heightModifier)/2) >= (ctx.canvas.height/2) + 50 && paddleA.y > 0) {
paddleA.y -= paddleA.speed + paddleA.speedModifier;
}
}
}
}
Вы можете найти .zip полного кода здесь: http://dl.dropbox.com/u/23225581/Pong.zip
Мой вопрос, как я мог бы реструктурировать это так ИИ не дрожит так много? Если у кого-то есть другие предложения для ИИ вообще, я бы хотел их услышать.
Посмотрите на псевдо двойной буферизации в HTML5. http://stackoverflow.com/questions/2795269/does-html5-canvas-support-double-buffering – xbonez
@xbonez Это не имеет значения, почему ИИ дрожит. Я знаю, что это связано с быстрым движением весла, а не с мерцанием холста, когда оно появляется. –