function refBalls(){
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var circles = [{x:40,y:100,r:20,color:'black',vx:5,vy:10}]
function draw(){
ctx.beginPath();
ctx.arc(circles[0].x, circles[0].y, circles[0].r, 0, 2 * Math.PI);
ctx.fillStyle = "blue";
ctx.fill();
if( (circles[0].x + circles[0].r + circles[0].vx > c.width + c.style.left) || (circles[0].x - circles[0].r + circles[0].vx < c.style.left) ){
circles[0].vx = -circles[0].vx;
}
circles[0].x += circles[0].vx;
requestAnimationFrame(draw);
}
requestAnimationFrame(draw);}
我能够看到球在运动,但我看到它的先前位置。我应该看到一个球在运动,相反,我看到的是一条像球在画布上画的条。有人能帮我吗? this is what I'm seeing in my browser
最佳答案
每次绘制框架时,都需要清除画布。这与视频游戏将其内容呈现到屏幕上的方式相同。
这里有一些例子:
How to clear the canvas for redrawing
关于javascript - 弹跳球在 Canvas 中绘制,JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36092380/