原地址:http://ityran.com/thread-118-1-1.html
写一个CCDirector(Extension)这样的Category
在头文件中加入:
@interface CCDirector(Extension)
/**Pops scene with transitions
*/
- (void) popSceneWithTransition: (Class)c duration:(ccTime)t;
@end
在实现文件中加入:
-(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;
}
}
分享到:
相关推荐
除了基本的切换方法,Cocos2D-X还提供了一系列的`Transition`类,它们提供了各种动画效果,如滑动、旋转、擦除等,使得场景切换更具观赏性。例如,`TransitionSlideInL`会从左侧滑入新场景,`TransitionRotoZoom`则...
`replaceScene()`会替换当前场景,而`pushScene()`则会在场景栈上添加新场景,允许通过`popScene()`返回到之前的场景。 在“自动切换”这个概念中,我们通常指的是在某个事件触发后,如计时器结束、用户交互或特定...
Cocos2d-x提供了一系列过渡效果类,如FadeIn、SlideIn、Zoom等,这些效果可以通过传递给`TransitionScene`构造函数来实现。例如,使用FadeIn效果进行场景切换: ```lua local transition = cc.TransitionFade:create...
`replaceScene`会直接将当前场景替换为新的场景,而`pushScene`则会在当前场景上方叠加新的场景,形成一个场景栈,用户可以通过`popScene`方法返回到前一个场景。 例如,假设我们有两个场景:`MainScene`和`...
总之,Cocos2d-x的场景切换通过导演类的`replaceScene()`、`pushScene()`和`popScene()`等方法实现,结合不同的过渡效果类,可以创建出丰富的游戏交互体验。在实际开发中,根据游戏逻辑和用户体验需求,灵活运用这些...
如果你想实现返回上一场景的功能,可以使用popScene方法,这会从堆栈中移除顶部的场景并返回到前一个。 在实现场景切换动画时,我们可以利用Transition类,它提供了多种过渡效果,如SlideInL、SlideInR、FadeOutTR...
CCLayer可以实现半透明的效果,层的事件相应机制:最外层最先接受到事件(屏幕触碰),最后是底层,如果在某层处理了该事件,则后面的层不会在接受到事件信号。 二、CCSprite CCSprite是cocos2d-x sprite对象,...
CCScene通过`runWithScene`、`replaceScene`、`pushScene`和`popScene`等方法来管理场景的切换和过渡。 - **CCLayer** 是CCNode的子类,常用于构建场景的外观和行为。它可以添加子节点(比如CCSprite)并定义渲染...
Alpha混合用于处理透明度效果。 - **`void setDepthTest(bool bOn)`** 设置是否启用深度测试。深度测试用于处理3D场景中的遮挡关系。 - **`virtual void mainLoop(void)=0`** 游戏主循环。这是一个纯虚函数,...
此外,它还提供了`pushScene`、`replaceScene`和`popScene`等方法,用于在不同的场景之间切换。 2. **Scene(场景)**: `Scene`是游戏中的一个独立单元,可以理解为游戏的一页或者一个阶段。每个`Scene`包含一个...
场景的切换通过调用SceneManager的API来实现,如`SceneManager.pushScene`用于添加新的场景到栈顶,`SceneManager.popScene`则会返回前一场景。这种栈式管理方式确保了场景的后进先出(LIFO)特性,使得回退操作变得...