这是一个弹跳球的画布动画。http://jsfiddle.net/eakA4/
我的问题是我希望球留下痕迹,即标记球过去所在位置的线。
确定球位置的代码是:
(function drawFrame () {
window.requestAnimationFrame(drawFrame, canvas);
context.clearRect(0, 0, canvas.width, canvas.height);
//theta = Math.atan2(mouse.y-ball.y,mouse.x-ball.x);
ball.x += vx;
ball.y += vy;
if (ball.x > canvas.width - ball.radius) {
ball.x = canvas.width - ball.radius;
vx *= -1;
} else if (ball.x < 0 + ball.radius){
ball.x = 0 + ball.radius
vx *= -1;
}
if (ball.y > canvas.height - ball.radius){
ball.y = canvas.height - ball.radius
vy *= -1;
} else if (ball.y < 0 + ball.radius){
ball.y = 0 + ball.radius;
vy *= -1;
}
ball.draw(context);
}());
我的问题是,因为我使用的是 clearRect(),所以我尝试绘制的任何路径都被清除了。我可以做的是继续将 ball.x 和 ball.y 坐标添加到一个数组中,然后使用画布 lineTo() 将所有这些点链接到每一帧,但这会很快达到大量点。
任何人都可以建议这样做的方法吗?