cocos2d-x 3从舞台上移除的奇特效果

时间:2014-07-18 19:49:35

标签: c++ cocos2d-x layer cocos2d-x-3.0

我有子类Layer并且覆盖了onEnter这样的函数:

void MyLayer::onEnter()
{
    Layer::onEnter();

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point visibleOrigin = Director::getInstance()->getVisibleOrigin();
    setPosition(visibleOrigin.x, visibleOrigin.y + visibleSize.height);
    runAction(EaseOut::create(MoveTo::create(1, Vec2(visibleOrigin)), 10));
}

这样我的图层就可以从顶部进入屏幕并轻松实现。现在我想从气味中删除具有相同效果的图层。我曾尝试使用onExitTransitionDidStart,但它无济于事:

void MyLayer::onExitTransitionDidStart()
{
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point visibleOrigin = Director::getInstance()->getVisibleOrigin();
    runAction(EaseIn::create(MoveTo::create(1, Vec2(visibleOrigin.x, visibleOrigin.y + visibleSize.height)), 10));
}

如何控制从舞台上移除图层的方式?

1 个答案:

答案 0 :(得分:0)

你覆盖了错误的方法 - 你应该覆盖onExit()。当父级场景转换到另一个场景时,会在图层上调用onExitTransitionDidStart()。另一方面,当图层离开场景时,将始终调用onExit()

编辑:您的评论是正确的 再给它一个想法,最简单的方法就是写自己的删除()'方法,会做这样的事情:

void MyLayer::remove() {

    this->runAction(Sequence::create(/*your actions here*/, CallFunc::create(CC_CALLBACK_0(Layer::removeFromParent, this)), NULL);

}

这将运行一个删除节点结束的操作。