0

我希望当玩家获胜并通过大门时弹出一个得分面板。通常它会弹出记分板。我认为最好的方法是使用图层并将其拉下。但是我只得到场景的过渡,只是想知道有什么办法可以进行图层过渡吗?

4

3 回答 3

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;

}

于 2013-12-23T12:15:18.180 回答
0

没有看到等效的 CCTransitionScene :CCScene 用于 CCLayer 但图层可以运行操作,使用它我们可以带出大部分动画/过渡。

这是我在这种情况下所做的,但我猜你也在想同样的事情。尽管如此,

1.创建一个图层并将其作为子级添加到屏幕框架之外的位置。2.然后当你想把它拉下来时,使用CCMoveTo将它移动到所需的位置。

于 2013-09-23T16:00:51.873 回答
0

我过去做过类似的事情。

  • 在屏幕外显示您的图层,即 setposition(0, CCDirector::sharedDirector()->getWinSize().height*1.5f);
  • 创建一个将其移动到屏幕上的动作(我喜欢使用 CCEaseSineOut)
  • 您还可以使用 callfunc 在完成动画
    scoreLayer->runAction( CCSequence::create( CCEaseSineOut::create(CCMoveTo::create(1.0f, ccp(0, 0-_screenHeight*1.5f) )), CCCallFunc::create(this, callfunc_selector(MainLayer::scorefinishedMove)), NULL));

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

于 2013-10-03T16:59:46.263 回答