欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cc.cirlce圆形运动小工具

程序员文章站 2024-03-25 19:38:28
...

先上图,无图无真相
cc.cirlce圆形运动小工具

再上使用代码
var tag = this.node.getChildByName('tag')
tag.runAction(cc.repeatForever(cc.circle(1,cc.v2(0,0),80,0,2*Math.PI)))

下面是使用文件,直接拷贝到项目中就可以用
CCCircleAction.rar248 (680 字节)

再补充一个方法,如果不确定圆和半径,只知道点的话,下面是计算方法
前提是我们知道,三点可以确定一个唯一的圆。
findCircle(p1,p2,p3){
var pt1 = cc.v2(0,0)
var pt2 = cc.v2(0,0) 
pt1.x = (p1.x+p2.x)/2
pt1.y = (p1.y+p2.y)/2

pt2.x = (p1.x+p3.x)/2
pt2.y = (p1.y+p3.y)/2
var k1 = (p2.y == p1.y ? 1 : -(p2.x-p1.x) / (p2.y-p1.y))
var k2 = (p3.y == p1.y ? 1 : -(p3.x-p1.x) / (p3.y-p1.y))
var centerx = (pt2.y - pt1.y - k2* pt2.x + k1*pt1.x) / (k1 - k2);
var centery = pt1.y + k1*(pt2.y-pt1.y-k2*pt2.x + k2*pt1.x)/(k1-k2);
var radius = Math.sqrt( (centerx-p1.x)*(centerx-p1.x) + (centery-p1.y)*(centery-p1.y))
return {x:centerx,y:centery,radius:radius}

}
将上面方法返回的三个值,传入cc.circle里即可使用<<路过三个点的一个圆形运动>>

PS:回帖太少,以后这种工具就不发了

 

相关标签: cocos cocos2d