2d物理引擎02

只是画出一个圆好像没什么用.....

所以我需要它动起来

犹记得s=vt,然后单位时间为1

那么让他动起来只需

setInterval(function(){
e.x+=e.Vx
e.y+=e.Vy
画出来()
},30)

画出来就是上一篇中的那个画圆的代码放进一个函数中就可以啦

 

动起来了....

可能在画之前还需要清空一下画板

function 画出来(){
            cav.width=cav.width  //可以清空画板,百度到的
            ctx.fillStyle=e.color
            ctx.arc(e.x,e.y,e.r,0,2*Math.PI)
            ctx.fill()
        }

 

 

但他跑掉了,我需要一个不让他跑掉的办法,碰撞!反弹!

怎么碰撞?碰到边缘不就是碰撞了吗

怎么反弹?把速度置反不就行了吗

好容易的样子

            if(e.y-e.r<0){e.Vy*=-1}
            if(e.y+e.r>H){e.Vy*=-1}
            if(e.x-e.r<0){e.Vx*=-1}
            if(e.x+e.r>W){e.Vx*=-1}

 

posted @ 2017-12-21 16:33  崮生  阅读(112)  评论(0编辑  收藏  举报