zoukankan      html  css  js  c++  java
  • canvas-8searchLight2.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <canvas id="canvas" style="margin:0 auto;border:1px #ddd solid">
            The current browser does not support Canvas, can replace the browser a try!
        </canvas>
    
        <script>
    
            var searchLight = {
                x : 400,
                y : 400,
                radius : 150,
                vx : Math.random() * 5 + 10,
                vy : Math.random() * 5 + 10
            }
    
            window.onload = function(){
                var canvas = document.getElementById('canvas');
    
                canvas.width = 1024;
                canvas.height = 768;
    
                if(canvas.getContext('2d')){
                    var context = canvas.getContext('2d');
    
                    setInterval(function(){    
                            draw(context);
                            update(canvas.width,canvas.height);
                    },40);
    
                }else{
                    alert('当前游览器不支持Canvas,请更换游览器后再试!');
                }
            }
    
            function draw(cxt){
                var canvas = cxt.canvas;
                cxt.clearRect(0,0,canvas.width,canvas.height);
    
                cxt.save();
    
                    cxt.beginPath();
                        cxt.fillStyle = "#000";
                        cxt.fillRect(0,0,canvas.width,canvas.height)
                    cxt.closePath();
    
                    cxt.beginPath();
                        cxt.arc(searchLight.x,searchLight.y,searchLight.radius,0,Math.PI*2);
                        cxt.fillStyle = "#fff";
                        cxt.fill();
                        cxt.clip();
                    cxt.closePath();
    
                    cxt.font = "bold 150px Arial";
                    cxt.textAlign = "center";
                    cxt.textBaseline = "middle";
                    cxt.fillStyle = "#058";
                    cxt.fillText("Canvas",canvas.width/2,canvas.height/4);
                    cxt.fillText("Canvas",canvas.width/2,canvas.height/2);
                    cxt.fillText("Canvas",canvas.width/2,canvas.height * 3/4);
                cxt.restore();
            }
    
    
            function update(canvasWidth,canvasHeight){
                searchLight.x += searchLight.vx;
                searchLight.y += searchLight.vy;
    
                if(searchLight.x - searchLight.radius <= 0){
                    searchLight.vx = -searchLight.vx;
                    searchLight.x = searchLight.radius;
                }
    
                if(searchLight.x + searchLight.radius >= canvasWidth){
                    searchLight.vx = -searchLight.vx;
                    searchLight.x = canvasWidth - searchLight.radius;
                }
    
                if(searchLight.y - searchLight.radius <= 0){
                    searchLight.vy = -searchLight.vy;
                    searchLight.y = searchLight.radius;
                }
    
                if(searchLight.y + searchLight.radius >= canvasHeight){
                    searchLight.vy = -searchLight.vy;
                    searchLight.y = canvasHeight - searchLight.radius;
                }
            }
    
        </script>
    </body>
    </html>
  • 相关阅读:
    HDU 4686
    二叉索引树——树状数组
    poj 3548 Restoring the digits(DFS)
    poj 2062 Card Game Cheater(排序+模拟)
    poj 2570 Fiber Network(floyd)
    hdu 1080 Human Gene Functions
    hdu 4512 吉哥系列故事——完美队形I(最长公共上升自序加强版)
    2015 Multi-University Training Contest 2
    poj 1258 Agri-Net(最小生成树)
    2015 Multi-University Training Contest 1记录
  • 原文地址:https://www.cnblogs.com/cynthia-wuqian/p/4988531.html
Copyright © 2011-2022 走看看