1

我正在上实现游戏。

现在我实现了“重播我的游戏”功能(游戏从头开始)

但我想以 1x 、 2x 、 3x 、 4x 的速度重玩我的游戏。将速度更改为 2 倍时,所有动作(移动和旋转等)都应针对新更改的变量起作用。

如何通过更改 CCAction 的总体速度来做到这一点?

我想要一个通用的解决方案。我知道变量或调度程序的解决方案,但我想要一个通用的解决方案。

4

2 回答 2

2

您可以使用以下代码来减慢或加快所有调度程序和操作:-

float val = 2.0; // to fast
val = 0.5; // to slow

Director->getInstance()->setTimeScale(val);

默认值为 1.0;

于 2016-10-18T16:54:10.313 回答
1

自己写一个像 CCEaseIn 这样的类。

重写更新(浮动时间)。

m_pInner->update(powf(time, m_fRate)); // this is what update() like in CCEaseIn

代码可以这样更改:

m_pInner->update(func(time)); 

func(float time) 是改变时间的函数。像 time/2 表示 0.5x,time*2 表示 2x。您可以保存一些参数以使功能更具适应性。

于 2016-10-21T08:45:16.130 回答