cocos2dx / coco2d层转换

时间:2013-09-23 15:25:38

标签: cocos2d-x

我希望当球员获胜并通过大门时,会弹出一个分数小组。 通常它会弹出记分板。 我认为最好的方法是使用图层并下拉它。 但我只是得到了场景的转换,只是想知道是否有任何方法进行图层转换?

3 个答案:

答案 0 :(得分:0)

没有看到相同的CCTransitionScene:CCScene for CCLayer,但是图层可以运行动作,我们可以使用它来显示大部分动画/过渡。

以下是我在这种情况下所做的事情,但我想你正在考虑同样的事情。尽管如此,

1.创建一个图层,并将其作为子图层添加到屏幕框外的位置。 2.如果要将其拉下来,请使用CCMoveTo将其移动到所需位置。

答案 1 :(得分:0)

我过去做过类似的事情。

  • 在屏幕外显示图层 即setposition(0,CCDirector :: sharedDirector() - > getWinSize()。height * 1.5f);
  • 创建一个动作以在屏幕上移动它(我喜欢使用CCEaseSineOut)
  • 你也可以使用callfunc在完成动画时调用一个函数 scoreLayer-> runAction(CCSequence :: create(CCEaseSineOut :: create(CCMoveTo :: create(1.0f,ccp(0,O-_screenHeight * 1.5f))),CCCallFunc :: create(this,callfunc_selector(MainLayer ::) scorefinishedMove)),NULL));

注意:该函数可能需要对结束括号等进行一些修复。您可能希望分离其中一些操作而不是将初始化正确放在runAction函数中

答案 2 :(得分:0)

对于图层转换,您可以执行以下操作:

   CCScene* newScene =  CCTransitionCrossFade::create(.5f,Layer2::scene());

CCDirector::sharedDirector()->pushScene(newScene);

在Layer2.cpp

CCScene * Layer2 :: scene()

{

CCScene* scene =  CCScene::create();

CCLayer* layer = new Layer2();
scene->addChild(layer,1);

return scene;

}