javascript - 在 Canvas 内绘制的弹跳球,javascript

标签 javascript html css

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);}

我能看到球在移动,但我看到的是它之前的位置。我应该看到一个球在移动,而不是在 Canvas 上看到一条像球画一样的 strip 。有人能帮我吗? this is what I'm seeing in my browser

最佳答案

每次绘制框架时都需要清除 Canvas 。这与视频游戏将内容渲染到屏幕上的方式相同。

这里有一些例子: How to clear the canvas for redrawing

关于javascript - 在 Canvas 内绘制的弹跳球,javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36092380/

相关文章:

javascript - `this` 是如何从经典的 Javascript 原型(prototype)制作方法中工作的

javascript - 如何在 Broadleaf 管理面板中删除任何内容之前启用提示?

html - 为什么斜体字体不起作用

javascript - Angular $q.defer() 返回 Object{then : function}

php - 将数字编码为字母

css - 烦人的css+div布局

javascript - 当我使用实时服务器查看页面时显示图像,但当我在浏览器中打开 html 文件时不显示

html - 使用 Google Web Toolkit 的 UI 设计师指南

javascript - 仅当 JavaScript 加载后,链接才应变为可点击状态

html - 在 HTML5/CSS3 中实现 imagelightbox.js