簡單記一下.方便查找..
原本用的是 [[CCDirector sharedDirector] pushScene:[SelectLayer scene]];
把後面的 的 scene替換掉. 改成.
[[CCDirector sharedDirector] pushScene:
[CCTransitionSlideInT transitionWithDuration:1.0f scene:[SelectLayer scene]]];
就可以有換景的特效..
除了 CCTransitionSlideInT
還有其他類似的可以用 都是 CCTransition... 開頭.
另外,如果是用 [[CCDirector sharedDirector] popScene];
無法加上換景的特效.
要加特效的話要在 在 這裡 有人提出一個方法.
1. 修改 CCDirector.h,在 -(void)popScene 下加上
- (void) popSceneWithTransition: (Class)c duration:(ccTime)t;
2.修改 CCDirectior.m , 在 -(void)popScene下加上
-(void) popSceneWithTransition: (Class)transitionClass duration:(ccTime)t;
{
NSAssert( runningScene_ != nil, @"A running Scene is needed");
[scenesStack_ removeLastObject];
NSUInteger c = [scenesStack_ count];
if( c == 0 ) {
[self end];
} else {
CCScene* scene = [transitionClass transitionWithDuration:t scene:[scenesStack_ objectAtIndex:c-1]];
[scenesStack_ replaceObjectAtIndex:c-1 withObject:scene];
nextScene_ = scene;
}
}
3.用
[[CCDirector sharedDirector] popSceneWithTransition:[
CCTransitionSlideInBclass] duration:0.5f];
取代原本的 [[CCDirector sharedDirector] popScene]; 指令即可.
其中的 [CCTransitionSlideInB class] 看需要什麼效果就替換上去.
順便再記錄一下.
回覆刪除A Scene pushScene:B 換成 B Scene後,
B Scene做完操作 popScene 回 A Scene.
這時想讓A Scene做動作或重新繪製 , 可以在 A Scene的 - (void)OnEnter上做處理