利用canvas來繪制一個會動的圖畫,歡迎指教


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>繪制小人動畫</title>
    <style>
        canvas{
            border: 1px solid green;
        }
    </style>
</head>
<body>
    <!-- 繪制小人動畫 -->
    <canvas width="400" height="600" id="canvas"></canvas>
</body>
<script>
    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');
    function toAngle(radian){
        return radian*180/Math.PI;
    }
    function toRadian(angle){
        return angle*Math.PI/180;
    }
    function img(ctx,element,x0,y0){
        var x = x0,
            y = y0;
        element.onload = function(){
            var width = element.width/4,
            height = element.height/4;
            var i = 0,
                j = 0,
                a = 0;
            setInterval(function(){
                //x = x + a;
                ctx.clearRect(x,y,width,height);
                ctx.drawImage(element,width*i,height*j,width,height,x,y,width,height);
                i ++;
                if(i == 4){
                    setTimeout(function(){    
                        i = 0;
                        if(j == 0){
                            j =1;
                            //a-=10;
                        }else if(j == 1){
                            j = 3;
                        }else if(j == 2){
                            j = 0;
                        }else if(j == 3){
                            j = 2;
                            //a+=10;
                        }
                    },20)
                }
            },200)
        }
    };
        var img1 = new Image();
        img1.src = 'imgs/game1.png';
        var img2 = new Image();
        img2.src = 'imgs/game2.png';
        var img3 = new Image();
        img3.src = 'imgs/game3.png';
        var img4 = new Image();
        img4.src = 'imgs/game4.png';
        var img5 = new Image();
        img5.src = 'imgs/game5.png';
        var img6 = new Image();
        img6.src = 'imgs/game6.png';
        var img7 = new Image();
        img7.src = 'imgs/game7.png';
        var img8 = new Image();
        img8.src = 'imgs/game8.png';
        var img9 = new Image();
        img9.src = 'imgs/game9.png';
        var img10 = new Image();
        img10.src = 'imgs/game10.png';
        var img11 = new Image();
        img11.src = 'imgs/game11.png';
        var img12 = new Image();
        img12.src = 'imgs/game12.png';
        img(ctx,img1,0,0);
        img(ctx,img2,50,0);
        img(ctx,img3,100,0);
        img(ctx,img4,150,0);
        img(ctx,img5,200,0);
        img(ctx,img6,250,0);
        img(ctx,img7,300,0);
        img(ctx,img8,350,0);
        img(ctx,img9,0,100);
        img(ctx,img10,50,100);
        img(ctx,img11,100,100);
        img(ctx,img12,150,100);
</script>
</html>

 

//這邊是自己封裝了一個函數,其實從性能優化的角度來考慮,我們可以先在內存中創建一個canvas標簽,將這個圖畫放在內存中的canvas里面,再將內存中創建好的canvas放到頁面上的這個canvas標簽上,這只是一個思路,希望大家可以往這方面考慮


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM