(关于场景自动切换)如何实现场景的实现

(关于场景自动切换)如何实现场景的实现

如何实现场景自动切换?我尝试了多种方法,例如在AppDelegate.cpp文件中的applicationDidFinishLaunching()函数中。

想在导演>中运行WithScene(pLandlords);直接用 replaceScene() 函数替换场景被证明是不可行的;

有没有想过在init()和onEnter()函数中使用时间调度来实现场景自动切换,但答案仍然是否定的。最后发现,通过在向导操作中实现函数回调操作,可以在函数

回调操作中定义回调函数

可以将场景替换在其函数体类中(可以使用场景自动切换来实现简单的动画效果)。

[实现场景自动切换]。

(1) 定义枚举常量以识别精灵

枚举

kTag=1,

};

在 init() 函数中创建精灵中,截图是代码的函数部分

cocos2d场景切换_cocos 场景切换动画_cocos帧动画

(2) 通过 onEnter() 函数中的 kTag 获取精灵对象,并创建一个动作序列(必须包含函数回调动作)。

这里增加了一个延时动作(也称为空动作)程序开发,使场景的自动过渡更好、更明显。

voidLandlords::onEnter()

CCLayer::onEnter();CCSprite*

pSprite=(CCSprite*)getChildByTag(kTag);

pSprite->runAction(CCSequence::create(CCDelayTime::create(2)cocos 场景切换动画,CCCallFunc::create(this,

callfunc_selector(房东::ShowBack))cocos 场景切换动画,空));

(3) 回调操作是对回调函数 Landlords::ShowBack 的引用,该函数在其头文件中说明

然后在实现该功能时切换场景(切换场景时可以添加过渡动画效果)。

voidLandlords::ShowBack()

切换到用户登录屏幕

CCScene*pHost=HostScene::scene();

CCDirector::sharedDirector()->replaceScene(pHost);

这里不介绍 HostScene 类3D交通工具,它主要用于布景,可以替换为任何场景。

【跑步效果】

由于向导执行的动作不同,运行效果也会不同,此实例的运行效果是延迟2秒后自动切换到另一个场景:(如图所示)。

cocos2d场景切换_cocos 场景切换动画_cocos帧动画

cocos帧动画_cocos2d场景切换_cocos 场景切换动画

其他效果:切换场景时可以自定义场景动画过渡,自行试用

【总结】实现

场景自动切换存在诸多误区,最终发现回调函数动作是用来实现没有动画的简单动画效果的。

(注:图片资源不宜用于商业目的,以免造成不必要的麻烦)。

完整来源:

文章来源:https://www.codetd.com/article/3975338