简体   繁体   English

画布-clearRect()之后的drawImage()

[英]Canvas - drawImage() after clearRect()

I have a problem. 我有个问题。 I am creating simple game in Canvas using JavaScript. 我正在使用JavaScript在Canvas中创建简单的游戏。 Image doesn't display after call clearRect() , does anyone know, how to solve it? 调用clearRect()后图像未显示,有人知道如何解决吗?

 var left1 = 0; var context1 = document.getElementById('canvas1').getContext('2d'); render1(); function render1() { var image = new Image(); image.onload = function () { context1.drawImage(image, left1, 0, 200, 200); }; image.src = 'http://www.pngall.com/wp-content/uploads/2016/06/Earth-Free-Download-PNG.png'; left1++; requestAnimationFrame(render1); } var left2 = 0; var context2 = document.getElementById('canvas2').getContext('2d'); render2(); function render2() { context2.clearRect(0, 0, 500, 250); var image = new Image(); image.onload = function () { context2.drawImage(image, left2, 0, 200, 200); }; image.src = 'http://www.pngall.com/wp-content/uploads/2016/06/Earth-Free-Download-PNG.png'; left2++; requestAnimationFrame(render2); } 
 canvas { display: block; } 
 It works, but old images are not deleted: <canvas id="canvas1" height="250" width="500"></canvas> It doesn't work, because of clearRect(): <canvas id="canvas2" height="250" width="500"></canvas> 

if you try to animate your image , its not necessary to make two canvas instead use a timer , i hope this will help 如果您尝试对图像进行动画处理,则不必制作两个画布而是使用计时器,希望这对您有所帮助

` `

    var left1 = 0;
    var context1 = document.getElementById('canvas1').getContext('2d');
    var canvas1 = document.getElementById('canvas1');
    window.onload = init;

    function init() {
        setInterval(drawc, 1000 / 60);
    };

    function drawc() {
        if (left1 > canvas1.width) {
            left1 = 0;
        }
        render1();
    }


    function render1() {

        with(context1) {
            clearRect(0, 0, canvas1.width, canvas1.height);
            var image = new Image();
            image.src = 'http://www.pngall.com/wp-content/uploads/2016/06/Earth-Free-Download-PNG.png';
            beginPath();
            drawImage(image, left1, 0, 200, 200);
            closePath();
            fill();
            left1++;
            // requestAnimationFrame(render1);
        }
    };

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM