在画布内绘制的弹跳球,javascript

Bouncing balls drawing inside a canvas, javascript

本文关键字:javascript 布内 绘制      更新时间:2023-09-26
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);}

我能够看到球在移动,但我看到它之前的位置。我应该看到一个球在移动,相反,我看到的是画布上像球画一样的条带。有人可以帮助我吗?这是我在浏览器中看到的

每次绘制框架时都需要清除画布。 这与视频游戏将其内容呈现到屏幕上的方式相同。

这里有一些例子:如何清除画布以进行重绘