美文网首页
小球碰壁效果

小球碰壁效果

作者: 余霜序 | 来源:发表于2019-08-26 21:32 被阅读0次

思路:1. 先创建一个画布
2. 在js创建一个var x = 0,y=0 代表 小球的x轴和y轴
3. 封装一个小球 方便随时可以调用 小球的x y轴 需要加上创建的x y轴 相当于加上一个随时可以变化的x y轴。
4. 创建一个开关 var speedX = 1,seppdY=2
5. 计时器,进入计时器的时候清除小球,不然会生成很多个小球。随便将speedx,y赋值给创建好的x和y。
6.临界值判断.向右移动,画布的总宽度减去小球的宽度就是小球可以移动的距离。当小球到达临界值的时候让小球往回走,seppdx取反
7.临界值判断.向左移动,当移动到小球的宽度的时候。当小球到达临界值的时候让小球往回走,seppdx再次取反。seppedx就为正数小球向左移动,
8. 上下和左右临界值判断一致。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #box{
            background-color: hotpink;
        }
    </style>
</head>
<body>
<canvas id="box" width="800" height="400"></canvas>
<script>
    var  oBox = document.querySelector("#box");
    var  ctx = oBox.getContext("2d")
    //先创建一个x y = 0 代表小球到坐标轴
    var x = 0,y=0;
    //开关
    var speedX=1 ,seppdY=2;
    //封装一个函数 随时可以调用小球
    function boll() {
        ctx.beginPath()
        //小球+X 和+Y 等进入计时器等时候改变小球等坐标达到运动效果
        ctx.arc(100+x,100+y,50,0,2*Math.PI,false)
        ctx.stroke()
        ctx.closePath()
    }
    boll()
    setInterval(function () {
        //进计时器先清除小球 不然会有很多个小球
        ctx.clearRect(0,0,oBox.width,oBox.height)
        //将开关赋值给x和y 等到达临界点时让sppend变为负值
        x+=speedX;
        y+=seppdY;
        //当小球移动坐标移动到距离画布的总宽度减去自身宽度让小球反弹,到临界点让开关为负值以达到往回走到效果
        if (100+x>oBox.width-50){
            speedX=-speedX
            //当小球回到原点自身宽度到时候,开关取反变为正值,继续往右走
        } else if (100+x<50){
            speedX=-speedX
        }
        //当小球移动坐标移动到距离画布的总高度减去自身高度让小球反弹,到临界点让开关为负值以达到往回走到效果
        if (100+y>oBox.height-50){
            seppdY=-seppdY
            //当小球回到原点自身高度到时候,开关取反变为正值,
        } else if (100+y<50){
            seppdY=-seppdY
        }
        console.log(speedX);
        console.log(seppdY);
        boll();
    },10)
</script>
</body>
</html>

相关文章

  • 小球碰壁效果

    思路:1. 先创建一个画布2. 在js创建一个var x = 0,y=0 代表 小球的x轴和y轴3. 封装一个小球...

  • Javascript:Canvas的小球碰壁反弹

    (萌新),我今天在网上看了看如何在Canvas画布上做出小球碰壁反弹的效果,然后自己试做一下,感觉良好,不知道还有...

  • canvas练习之躁动的小球

    1.绘制若干个小球 2.让每个小球都是些碰壁反弹 3.当两个小球之间的距离到达指定长度时,在这两个小球中间绘制一条...

  • OpenGL-- 小球绕大球公转案例解析

    一、 效果图大球自传,并且小球绕着公转效果图 代码思路: 先绘制地板 地板 + 大球的效果 地板+ 大球+小球的效...

  • 加载小球效果

    起因:作为底层民工面试工作基本都要笔试,之前笔试遇到一道简单的题目是写一个加载的进度球,可我当时愣是没写出来。现在...

  • 知识回顾第一期

    一、作品效果1、小球朝着某个方向移动,碰到舞台边缘反弹。2、小猫追着小球跑,当小猫碰到小球后,小球随机变换位置继续...

  • 视差动画-旋转加载动画

    效果: 效果分析: 第一步旋转小球 1.1通过integer-array来定义显示的小球个数和颜色 1.2 Mat...

  • Animation随记

    最终实现的小球效果: Evaluator 加速器 ValueAnimator与ObjectAnimator

  • 12.vue 点击购物车小球效果解决定位问题:

    4.实现点击购物车小球弹入效果: 小球动态效果实现后遇到一下问题: 页面下翻动,定位写死导致定位不准确 分辨率更换...

  • OpenGL纹理下的球体世界

    一.先看看整体效果 二.绘制流程 在OpenGl综合案例(地板,大小球,公转,自转,移动)文章中,我们绘制了大小球...

网友评论

      本文标题:小球碰壁效果

      本文链接:https://www.haomeiwen.com/subject/jphjectx.html