2016-10-18 4 views
1

私はでゲームを実装しています。どのようにcocos2dxゲームのすべてのアクションを遅くする

は、今私は、「リプレイ私のゲームの」機能を実装(ゲームが最初から表示されます)

しかし、私は1倍、2倍、3倍、4倍の速さで私のゲームを再生します。速度を2倍に変更すると、すべてのアクション(移動や回転など)は新しい変更された変数に対して機能するはずです。

CCActionの一般的な速度を変更すると、どうすればできますか?

一般的な解決策が必要です。私は変数またはスケジューラの解決策を知っていますが、 ですが、私は一般的な解決策が必要です。

答えて

1

CCEaseInのようなクラスを自分で作成してください。

書き換え更新(浮動小数点時間)。

m_pInner->update(func(time)); 

FUNC(フロート時間)時間を変更する機能である:

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

コードは次のように変更してもよいです。 time/2は0.5xを意味し、time * 2は2xを意味します。この機能をより柔軟にするために、いくつかのパラメータを節約することができます。

2

あなたは遅いか速いすべてのスケジューラと行動するには、次のコードを使用することができます: -

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

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

デフォルト値は1.0です。

+0

setTimeScale(val)関数はスケジューラです。関数とvalは、すべての関数が実行されている時間の変数です。これが真実なら、私はこれを前にしていました。私は、すべてのアクション(カードの反転、カードの回転、カードの動き、カードのバウンス、そしてすべての種類の機能)が1つだけの変数を変更することで速度を変えるというソリューションが欲しい。 –

+0

あなたは上記のアプローチを試しましたか? –

関連する問題