• canvas-自由落体球


    一、思路

    1. 有一个不停画球的方法
    2. 鼠标移入的时候球开始画,这个时候速度不断变化,当去了边界的时候速度变反
    3. 鼠标移走停止画图

    二、代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>ball</title>
    </head>
    <body>
        <canvas id="canvas" width="600" height="300"></canvas>
    
        <script>
          var canvas = document.getElementById('canvas');
          var ctx = canvas.getContext('2d');
          var raf;
    
          var ball = {
            x: 100,
            y: 100,
            vx: 5,
            vy: 2,
            radius: 25,
            color: 'blue',
            draw: function() {
              ctx.beginPath();
              ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true);
              ctx.closePath();
              ctx.fillStyle = this.color;
              ctx.fill();
            }
          };
    
          function draw() {
            // 清楚画布上图形
            // ctx.clearRect(0,0, canvas.width, canvas.height);
            // 不清楚 半透明
            ctx.fillStyle = 'rgba(255,255,255,0.3)';
            ctx.fillRect(0,0,canvas.width,canvas.height);
            if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) {
              ball.vy = -ball.vy;
            }
            if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) {
              ball.vx = -ball.vx;
            }
            ball.draw();
            ball.x += ball.vx;
            ball.y += ball.vy;
            ball.vy *= .99;
            ball.vy += .25;
            raf = window.requestAnimationFrame(draw);
          }
    
          canvas.addEventListener('mouseover', function(e){
            raf = window.requestAnimationFrame(draw);
          });
    
          canvas.addEventListener('mouseout', function(e){
            window.cancelAnimationFrame(raf);
          });
    
          ball.draw();
    
        </script>
    </body>
    </html>
    
  • 相关阅读:
    docker-compose
    Cassandra
    npm常用命令
    k8s linux win10
    wsl2 docker 迁移
    docker http 代理
    mysql查看当前所有的数据库和索引大小
    mybatis 遍历list拼接 or查询
    es head crud
    nginx 代理转发mysql
  • 原文地址:https://www.cnblogs.com/it-cuiyi/p/10978650.html
Copyright © 2020-2023  润新知