做了一个弹球游戏,球的移动是在update中用 this.node.setPosition(x,y) 来实现的;
球的碰撞检测是用
var manager = cc.director.getCollisionManager();
manager.enabled = true; 实现的
现在想实现游戏整体加速,2倍,3倍,5倍等。
如果只是在update中增加球每帧的移动距离,会影响碰撞检测效果。
有没有其它方法,在不影响CollisionManager的情况下实现游戏加速。
同问。。。
同问,凑字数
我觉得加速度肯定还是的用this.node.setPosition(x,y) 改变值来做。。主要是你的球不要碰撞到物体受力的影响,而只要方向。速度全用this.node.setPosition(x,y) 来控制,就能达到你到效果
我以前做法是:每隔多少帧执行一次逻辑,最快就是每帧执行一次
creator没用过,但是js中是使用这个的
导演类中的cc.director.getScheduler().setTimeScale();
麻烦问一下,如果用这个方法可以改变物理引擎的检测频率,我是不是要把动作改成
var goAction= cc.moveBy(time,cc.p(x,y));
this.node.runAction(goAction);
这个样子。
因为如果还是用setPosition,球是跳跃点运动,加大检测频率,对检测结果没有影响
用调度器执行setPosition吧,然后用cc.director.getScheduler().setTimeScale();
你需要了解帧同步的一些东西,对做这种游戏内的加速减速暂停有奇效
看了一下回复内容,整合了一下,大体实现了
cc.director.getScheduler().setTimeScale(2);
cc.director.getPhysicsManager().enabledAccumulator = true;
cc.director.getPhysicsManager().FIXED_TIME_STEP = 1 / 20;
mark
了解下帧同步。有个时间缩放值。想加减速 *缩放值就行了。
cc.director.getScheduler().setTimeScale(2);
cc.director.getPhysicsManager().enabledAccumulator = true;
cc.director.getPhysicsManager().FIXED_TIME_STEP = 1 / 20;
mark
good good good
mark一下,,