(
声明,如果有任何侵权或者错别字,讲错话等违法或非违法行为,请先冷静,不要联系 麦德姆或德姆,都好商量。在冲量,不xi轻喷。

)
在 Cocos Creator 2.4 里面让 3D 模型转起来
- 让模型转起来
毕竟是款2D引擎,3D能支持就应该知足了,但是幸运的事是写js就可以,不用改引擎,况且俺还不具备改引擎的能力,在修炼中…
如何让模型自由的转呢?x和y轴其实也比较容易,就是手移动移动,计算跟上就好了,但是只转 x\y 貌似不太灵活,这里推荐下得物( 毒 )的一个隐藏功能,做的其实还不错
上点代码吧,不然显得贴太水
核心 API :
cc.Quat.rotateAround,这个东西有点小坑,就是参数,一共 4 个参数,
-
第一个参数是一个四元数的值,可以 new 一个,不是很重要
-
第二个参数是需要旋转的对象的当前朝向,node.getRotation就可以了,要normalize一下,不然会转变形,应该是底层没写好,不是很重要 ( normalize 需要两个参数 ,而且两个参数保持一致 )
-
第三个参数是旋转轴,这个东西对自身旋转很重要,一样的问题,用之前需要normalizeSelf一下,不然会转变形,不是很重要
-
最后一个参数是要旋转的角度,扔进去要转几度就好了,不是很重要
基本坑就是上面
那就转起来吧:
x 轴:Math.abs( deltaY ) * RotationSpeed * cc.director.getDeltaTime();
( 1 ) deltaY : from event.getDelta()
( 2 ) RotationSpeed : 就不想一个速度转
( 3 ) cc.director.getDeltaTime() : 跟着时间转会不会丝滑一些,不知道这个方法性能好不好,能用先用吧
y 轴:Math.abs( deltaX ) * RotationSpeed * cc.director.getDeltaTime();
ctrl + c, ctrl + v, 把 Y 改成 X 就可以了
z 轴 :( 小知识点 )
----- 此处有个池子,但是不让上传那就算了把 -----
角度 :cc.v2( moveX, moveY ).mag()
旋转轴 :cc.v3( moveX, moveY, 0.)…也要 normalizeSelf
- 斜着的角度就是斜着滑动的距离
- 旋转轴的话就是x方向和y方向两个向量的和
其实不难,只是转个小弯
附件放个脚本,挂到一个遮住屏幕的节点上,拖一个要旋转的对象上去就可以了,和“得物“学的有惯性,具体实现比较简单就是短时间内收集一些旋转缓存,然后求平均,让旋转对象多转一会就好了,只是一种途径,有更好的欢迎指导 



附件:TouchControllerV2.js.zip (3.0 KB)
***** 那就这样吧。。。


