Cocos2d-x:在1s内隐藏精灵

Cocos2d-x:在1s内隐藏精灵,cocos2d-x,Cocos2d X,我是Cocos2d-x的新手 我正在开发一个简单的游戏 我想把精灵从右移到左 在它移动的过程中,我希望精灵在1s内隐藏在远处。 顺序:1s:可见,1s:不可见,1s:可见 示例:它从位置A运行到位置D 在A和D之间有B和C=>(A->B->C->D) 当精灵在A->B中可见时,B->C将隐藏,然后C->D将再次可见 我怎么做 感谢您的帮助。您可以使用CCSpawn,它可以同时运行两个操作 您可以尝试以下代码: CCAction*action=CCSpawn::createWithTwoActio

我是Cocos2d-x的新手

我正在开发一个简单的游戏

我想把精灵从右移到左

在它移动的过程中,我希望精灵在1s内隐藏在远处。 顺序:1s:可见,1s:不可见,1s:可见

示例:它从位置A运行到位置D 在A和D之间有B和C=>(A->B->C->D) 当精灵在A->B中可见时,B->C将隐藏,然后C->D将再次可见

我怎么做


感谢您的帮助。

您可以使用
CCSpawn
,它可以同时运行两个操作

您可以尝试以下代码:

CCAction*action=CCSpawn::createWithTwoActions(CCMoveTo::create(1,CCPointMake(x,y)),
CCFadeOut::创建(1));
你可以使用精灵->运行动作(动作);
更新:

您可以使用
CCRepeatForever
运行fadein/fadeout,在移动操作完成后,停止此永久操作

代码如下:

CCSequence*move=CCSequence::create(CCMoveTo::create(3,CCPointMake(1,1)),
CCCallFunc::create(这个callfunc_选择器(SomeClass::some_func)),
无效);
CCRepeatForever*forever=CCRepeatForever::create(CCSequence::create)(CCFadeIn::create(1),
CCFadeOut::创建(1)
空);
你的精灵->运行动作(移动);
你的精灵->runAction(永远);
这是回调函数(在移动操作后调用)

void SomeClass:some_func(){
你的精灵->停止动作();
}

您可以使用
CCSpawn
,这可以同时运行两个操作

您可以尝试以下代码:

CCAction*action=CCSpawn::createWithTwoActions(CCMoveTo::create(1,CCPointMake(x,y)),
CCFadeOut::创建(1));
你可以使用精灵->运行动作(动作);
更新:

您可以使用
CCRepeatForever
运行fadein/fadeout,在移动操作完成后,停止此永久操作

代码如下:

CCSequence*move=CCSequence::create(CCMoveTo::create(3,CCPointMake(1,1)),
CCCallFunc::create(这个callfunc_选择器(SomeClass::some_func)),
无效);
CCRepeatForever*forever=CCRepeatForever::create(CCSequence::create)(CCFadeIn::create(1),
CCFadeOut::创建(1)
空);
你的精灵->运行动作(移动);
你的精灵->runAction(永远);
这是回调函数(在移动操作后调用)

void SomeClass:some_func(){
你的精灵->停止动作();
}

对于延迟显示/隐藏,您可以使用此代码(我就在这里编写了此代码,因此在复制并粘贴到项目=)后可能无法编译此代码)

要移动节点(本例中为精灵),可以使用
CCMoveTo
CCMoveBy
操作。 比如说

float moveDuration = 5f;
CCPoint targetPos = CCPointMake(someX, someY);
CCAction* moveAction = CCMoveTo::create(moveDuration, targetPos);

yourNode->runAction(moveAction);

对于show/hide with delay,您可以使用此代码(我就在这里编写了此代码,因此在复制并粘贴到您的项目=)后可能无法编译此代码)

要移动节点(本例中为精灵),可以使用
CCMoveTo
CCMoveBy
操作。 比如说

float moveDuration = 5f;
CCPoint targetPos = CCPointMake(someX, someY);
CCAction* moveAction = CCMoveTo::create(moveDuration, targetPos);

yourNode->runAction(moveAction);
试试这个动作

CCHide * hideAction = CCHide::create();
试试这个动作

CCHide * hideAction = CCHide::create();
SpriteName->runAction(序列::创建(隐藏::创建(),NULL))

这里只隐藏精灵。

SpriteName->runAction(序列::创建(隐藏::创建(),NULL))


这里只有精灵隐藏。

非常感谢你,但我的意思是:如果它运行3s,那么它在1s中不可见,顺序:1s:可见,1s:不可见,1s:可见非常感谢你,但我的意思是:如果它运行3s,那么它在1s中不可见,顺序:1s:可见,1s:不可见,1s:可见