1

私は Cocos2d-x の初心者です。

私は簡単なゲームを開発しています。

スプライトを右から左に移動したい。

移動中、そのスプライトを1秒で遠くに隠したい。シーケンス: 1 秒:表示、1 秒:非表示、1 秒:表示

例: 位置 A から D まで実行されます A と D の間に B と C があります => ( A->B->C->D) A->B のスプライトが表示されると、B->C が表示されます非表示にすると、 C->D 再び表示されます。

どうすればできますか?

ご協力いただきありがとうございます。

4

5 に答える 5

1

このアクションを試してください

CCHide * hideAction = CCHide::create();
于 2014-01-05T15:04:34.217 に答える
1

を使用できますCCSpawn。これにより、2 つのアクションを同時に実行できます。

このコードを試すことができます:

CCAction* action = CCSpawn::createWithTwoActions(CCMoveTo::create(1,CCPointMake(x,y)), 
                                                 CCFadeOut::create(1));
you_sprite->runAction(action);

アップデート:

CCRepeatForeverフェードイン/フェードアウトを実行するために使用でき、移動アクションが完了したら、このアクションを永久に停止します。

コードは次のとおりです。

CCSequence* move = CCSequence::create(CCMoveTo::create(3, CCPointMake(1, 1)),
                                      CCCallFunc::create(this, callfunc_selector(SomeClass::some_func)),
                                      NULL);
CCRepeatForever* forever = CCRepeatForever::create(CCSequence::create(CCFadeIn::create(1),
                                                                      CCFadeOut::create(1)
                                                                      NULL));
your_sprite->runAction(move);
your_sprite->runAction(forever);

これがコールバック関数です (移動アクションの後に呼び出されます)。

void SomeClass:some_func(){
  your_sprite->stopAllActions();
}
于 2013-07-17T08:01:02.307 に答える
0
Sprite->runAction(Sequence::create(MoveTo::create(1.0f, Vec2(200,200)),Hide::create(),MoveTo::create(1.0f, Vec2(200,400)),Show::create(),NULL));
于 2015-10-02T08:32:34.797 に答える