美文网首页
Javascript:Canvas的小球碰壁反弹

Javascript:Canvas的小球碰壁反弹

作者: Ysang丶沙宣 | 来源:发表于2017-07-15 21:15 被阅读0次

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

首先我的思路是:

1.在body创建一个canvas标签,设置宽:500px,高:500px,id:“canvas”

2.在script标签获取canvas标签,获取上下文,然后开始画个圆圈(小球)。

3.小球运动需要有上下两个方向,定义 x和y ;也需要两个速度, 定义 speedX 和 speedY。

4.方向定义好后,加个定时器然小球运动,当小球移动的方向超过(Canvas的自身高度-小球的半径)或者小球移动的方向小于自身半径的时候,就会碰壁反弹。

5.小球运动之前先把画布全部清掉在运动。

好了,思路弄好之后就开始写代码了。

1.创建一个canvas

<body>

    <canvas id="canvas" width = "500" height = "500" style = "border :1px solid black"> </canvas>

</body>

2.获取canvas标签,获取上下文,画小球

<script>

      var canvas = document.getElementById('canvas');  

      var ctx = canvas.getContext('2d');//获取上下文(2d绘制)

      var x = 0; var y = 0;//设置小球的方向

     var speedX = 1; var speedY = 2; //给小球一个初始速度(如果给0的话会不动的,因为我试过,哈哈哈)。

     function Ball(){    //(把小球放到一个函数里方便调用)

        ctx.beginPath();

        ctx.arc(100+x,100+y,50,0,2*Math.PI,false);   //小球的移动的距离随着 x , y 的增加而增加

        ctx.stroke();

       ctx.closePath();

     }

      Ball();

     setInterval(function(){

       ctx.clearRect(0,0,canvas.width,canvas.height);//重绘 清除画布

       x+=speedX;  y+=speedY;

//当小球移动的方向超过(Canvas的自身高度-小球的半径)或者小球移动的方向小于自身半径的时候,就会碰壁反弹。

      if(100+x > canvas.width - 50){   

            speedX = -speedX;

       }else if(100+x < 50){

            speedX = -speedX;

        }

        if(100+y > canvas.height - 50){

            speedY = -speedY;

        }else if(100+y < 50){

            speedY = -speedY;

        }

             Ball();

     },10)

</script>

嗯嗯,这样就大功告成了。

来自萌新的分享。

相关文章

  • Javascript:Canvas的小球碰壁反弹

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

  • canvas练习之躁动的小球

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

  • js中利用面向过程和面向对象实现圆点碰壁反弹

    使用面向过程实现碰壁反弹 使用面向对象实现碰壁反弹

  • 小球碰壁效果

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

  • 构造函数&&类--canvas小球碰撞

    1. 构造函数 canvas小球碰撞 2. 类 canvas小球碰撞 有上可以看出,用类写面向对象的方法,...

  • 碰壁反弹

    效果图: 源代码:

  • canvas --暴走的小球!!

    躁动的小球 * {margin: 0;padding: 0;}html, ...

  • 基于C语言的小球移动课程设计

    用C语言实现“小球移动”的简单图形游戏。可添加、删除小球,小球的分数和大小随机,球会在游戏区域内反弹,小球可被删除...

  • day12-作业

    实现鼠标点击屏幕产生小球,小球自动移动,与屏幕碰撞会反弹。小球之间碰撞,会随机吃掉。 定义部分颜色的模块

  • 知识回顾第一期

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

网友评论

      本文标题:Javascript:Canvas的小球碰壁反弹

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