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.rar (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:回帖太少,以后这种工具就不发了

28赞

参数列表:
1:时间
2:圆心点
3:半径
4:起点弧度
5:终点弧度
6:是否顺时针(默认顺时针,逆时针传false)

这个流弊

:+1:,感谢分享!学习了!

可以可以,看到这个,我这个初学者专门去看了下js的类封装

战略性mark

顶楼主,对这种数学计算看到就犯晕,需要楼主的工具,代码里加点注释就好了:slightly_smiling:

很好,正好用上。

顶就完事了

mark

顶顶更健康,赞一个,拿走

@jare 我刚刚发现这个文件加入工程后,原生平台会直接崩溃


帮忙看看?
原生平台要通用写c++文件后,通过jsb来绑定?

1赞

顶一个,希望LZ能继续发

mark

mark

mark

流弊666

mark

楼主这个可以在native使用吗?记得之前在native上js无法继承action重写action。

native暂时不行。都有源码,可以自己写个c++,然后用jsb绑定一下