我想爲我的pong遊戲製作一個AI,但是AI控制的槳在試圖擊中球時抖動了很多。爲什麼我的乒乓球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
我的問題是我怎麼能重組這讓AI不會抖動那麼多?如果任何人對AI總體上有其他建議,我很樂意聽到他們。
看一看在HTML5僞雙緩衝。 http://stackoverflow.com/questions/2795269/does-html5-canvas-support-double-buffering – xbonez 2012-02-03 17:55:41
@xbonez這與AI爲什麼不穩定無關。我知道這與槳快速移動有關,而不是畫布在呈現時閃爍。 – 2012-02-03 18:04:35