zoukankan      html  css  js  c++  java
  • canvas小球运动

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <canvas id="canvas" style="border:1px solid #ccc;"></canvas><!--是基于状态绘制的-->
    <script>
        //g是物理上的加速度 vx是x轴上的速度, vy是y轴上的速度   x:512,y:100初始位置
        var ball={x:512,y:100,r:20,g:2,vx:-4,vy:-10,color:"#005588"}//这是第一个小球
        window.onload=function(){//在window.onload调用这两步
            var canvas = document.getElementById("canvas");
            canvas.width=1024;
            canvas.height=768;//与下文作用一样!不支持css来写
            //获取他的上下文的绘图环境(这是初始化)注意引号
            var context = canvas.getContext('2d');
    
            setInterval(
                 function(){
                     render(context);
                     update()
                 },50
            )//这是创造动画
    
    
        }
        function update(){//位置改变一帧一帧的绘制出来
            ball.x +=ball.vx
            ball.y +=ball.vy
            ball.vy +=ball.g
    
            if(ball.y >=768 - ball.r){//碰撞检测
                ball.y = 768-ball.r
                /*ball.vy = -ball.vy   这是y轴上的速度改变方向*/
                ball.vy = -ball.vy*0.5
            }
    
        }
        function render(cxt){//通过上下文的绘图环境调用canvas方法。来找到这个绘图环境是属于那个环境。cxt.canvas     render(cxt)中的cxt是context
            cxt.clearRect(0,0,cxt.canvas.width,cxt.canvas.height)
            cxt.fillStyle = ball.color
            cxt.beginPath()
            cxt.arc(ball.x,ball.y,ball.r,0,2*Math.PI)
    
    
            cxt.fill()
        }
    </script>
    </body>
    </html>
    下面是主要来创造动画的
    setInterval( function(){ render(context); update() },50 )
  • 相关阅读:
    VB几种函数参数传递方法,Variant,数组,Optional,ParamArray
    一些 Windows 系统不常见的 鼠标光标常数
    加载MSCOMCTL.OCX错误处理的几个关键
    如何快速掌握一门技术
    《将博客搬至CSDN》
    日期小demo
    iOS崩溃解决记录
    Swift基础语法
    iOS端APP切图命名规范大全
    PHP案例:学生信息管理系统
  • 原文地址:https://www.cnblogs.com/jin-000/p/5359572.html
Copyright © 2011-2022 走看看