2016-10-18 2 views
1

에 게임을 구현 중입니다. cocos2dx 게임의 모든 동작을 느리게하는 방법

는 지금은 기능에 "내 게임의 재생"을 구현 (게임 시작부터 보여줍니다)

하지만 1 배, 2 배, 3 배, 4 배의 속도로 내 게임을 재생하고 싶습니다. 속도를 2 배로 변경하면 모든 동작 (이동 및 회전 등)이 새로운 변경된 변수와 관련하여 작동해야합니다.

CCAction의 일반적인 속도를 변경하면 어떻게 할 수 있습니까?

일반적인 해결책을 원합니다. 변수 나 스케줄러가있는 솔루션을 알고 있는데, 하지만 일반적인 솔루션을 원합니다.

답변

1

CCEaseIn과 같은 수업을 직접 작성하십시오.

다시 쓰기 업데이트 (부동 시간).

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

코드는 다음과 같이 변경 될 수있다 :

m_pInner->update(func(time)); 

FUNC (플로트 시간) 시간을 변경할 수있는 기능이다. 시간/2는 0.5x를 의미하고, 시간 * 2는 2x를 의미합니다. 이 기능을보다 융통성있게하기 위해 일부 매개 변수를 저장할 수 있습니다.

2

당신은 천천히 코드 또는 빠른 모든 스케줄러 및 조치를 사용할 수 있습니다 : -

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

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

기본값은 1.0입니다;

+0

setTimeScale (val) 함수는 스케줄러입니다. 함수 및 val은 모든 함수가 실행되는 시간의 변수입니다. 이것이 사실이라면 나는 이것을 전에했다. 나는 하나의 변수 만 변경하여 모든 액션 (예 : 카드 뒤집기, 카드 회전, 카드 이동, 카드 수신 거부 및 모든 종류의 기능)이 속도를 변경하는 솔루션을 원합니다. –

+0

위의 방법을 사용해 보셨습니까? –