cocos2d-x lua 3D桌球 源代码分享

实现了玩家的同步,上线游戏,但是只发布了客户端的代码,帧同步代码也托管了,同步代码就短短几百行实现,全部是lua完成的

是采用的帧同步实现同步的吗?

对的!

能有creator版本就好了

… 接口名都差不多…改造一下呗!
creator开发起来也快

这个分享,质量极高。感谢楼主分享。

hhhh 不客气!

牛逼了

向lua大佬请教,cocos的simulator工具是咋用的,我运行config.json是黑屏:sweat:

6 的呀

vs2013直接启动工程就可以了… .sln

\Billiards\frameworks\runtime-src\proj.win32\Billiards.sln

lua脚本在 Billiards\src

如果你想simulator直接启动的话,把src和res复制到simulator/win32下

:slightly_smiling:

看你的代码,滚动是通过 setAngularVelocity 实现的,我用最新的cocos creator都没有找到这个接口,不过 node 有一个欧拉角 eulerAngles 可以滚动球体,但是还不知道如何精确控制滚动,大哥有办法吗

看这里

好嘞~~~

ccs没用过,如果是unity的话我会在球的Update函数中根据当前方向和旋转角速度来修改gameObject的rotation,当前四元数乘以四元数。
ccs应该也差不多吧

我当时做的时候想法是这样的,因为cocos的3D物理引擎用不了,所以用的2D物理引擎,球的位移交给了物理引擎来实现,但是旋转是通过每帧调整角速度来实现的,角速度大小和当前滚动速度成clamp或正比。
setAngularVelocity 只是为了2D物理刚体上的3D台球模型旋转的角速度用的,3D模型是2D刚体的子节点,所以2D的旋转是同步的,这样的话就很真实的滚动旋转了

你可以这样理解,2D在绕垂直屏幕的Z轴旋转(自转),由物理引擎控制,我没做任何动作,3D球体模型每帧检测,根据当前的位移速度计算出滚动的角速度(每帧不停的赋值),然后因为存在父子关系,所以2种旋转同时存在.

mark

大佬请教一个问题,cocos自带的物理引擎是chipmunk,据我百度里面的实现是浮点数,你那边的项目是怎么解决网络同步这个问题的