私は卓球の試合でAIを作ろうとしていますが、AIがコントロールするパドルは、ボールを打ちようとしているときに大きく揺れます。あなたがここに完全なコードの.zipファイルを見つけることができます私のポンの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;
}
}
}
}
:ここ
は私のコードのAIセクションで http://dl.dropbox.com/u/23225581/Pong.zip私の質問を、私はこのようにAIを再構築できる方法でありますあまりジッタがないのですか?誰かが一般的にAIのための他の提案を持っている場合、私はそれらを聞くのが大好きです。
は、HTML5で疑似ダブルバッファリングを見てください。 http://stackoverflow.com/questions/2795269/does-html5-canvas-support-double-buffering – xbonez
@xbonezこれは、AIがジッタをつけている理由とは無関係です。私はそれがレンダリング中にキャンバスがちらつくのではなく、パドルが速く動くことと関係していることを知っています。 –