2023. 3. 14. 19:19ㆍcocos2dx
//다음에 불꽃처리 + fadeout처리 + 삭제처리
if (smallPics[i] != nullptr)
{
smallPics[i]->runAction(FadeOut::create(0.7f));
auto childs = smallPics[i]->getChildren();
for (int i = 0; i < childs.size(); i++) childs.at(i)->runAction(FadeOut::create(0.7f));
auto fireEffect = ParticleSystemQuad::create("fire.plist");
fireEffect->setPosition(smallPics[i]->getPosition());
fireEffect->setAutoRemoveOnFinish(true);
this->addChild(fireEffect, 3);
}
fire.plist 는 http://particle2dx.com/ 에서 미리 만들어 둔 불꽃 파티클
파티클을 추가할때 그냥 particlesystem으로 생성하면 안되고
반드시 particlesystemquad로 생성해야 되더라...
저거 지속시간은 대충 0.7초일거고 아마, auto remove on finish를 했으니 다 타면 사라지겠지
auto scaleTo = ScaleTo::create(0.4f, 1.0f);
auto fadeIn = FadeIn::create(0.4f);
auto spawn = Spawn::createWithTwoActions(scaleTo, fadeIn);
auto delay = DelayTime::create(0.05f * i);
auto seq = Sequence::create(delay, spawn, nullptr);
spr->runAction(seq);
Spawn은 2개 이상의 action을 합치기(동시 수행)
Sequence는 순차적으로 action을 합치기(순차적 수행)
CallFunc *runCallback = CallFunc::create(CC_CALLBACK_0(HelloWorld::deleteSmallPic, this));
this->runAction(Sequence::create(delay, runCallback, nullptr));
void HelloWorld::deleteSmallPic() {}
CallFunc으로 action에 콜백함수를 만들어서 링크시켜 줄 수 있다
-------추가-------
CallFuncN
메소드를 호출하면서 액션을 실행하는 주체를 넘겨줌.
MoveTo *action_0 = MoveTo::create(1.0f, Point(200, 200));
CallFuncN *action_1 = CallFuncN::create(CC_CALLBACK_1(HelloWorld::goCall, this))
Sequence *action_2 = Sequence::actions(action_0, action_1, NULL);
spr->runAction(action_2);
void HelloWorld::goCall(Node *pSender) {
Sprite *spr = (Sprite *)pSender;
spr->setScale(2);
}
CallFuncN
메소드를 호출하면서 주체 및 특정한 값을 넘겨줌
MoveTo *action_0 = MoveTo::create(1.0f, Point(200, 200));
CallFuncN *action_1 = CallFuncN::create(CC_CALLBACK_1(HelloWorld::goCall, this,(void*)"cocos2d-x"));
Sequence *action_2 = Sequence::create(action_0, action_1, NULL);
spr->runAction(action_2);
void HelloWorld::goCall(Node *pSender, void *d) {
CCLOG("goCall %s", (char*)d);
Sprite *spr = (Sprite *)pSender;
spr->setScale(2);
}
이렇게 쓸 수도 있대
CallFunc 액션과 함께 사용되는 콜백함수는 무조건 CC_CALLBACK_0 입니다.
그리고 CC_CALLBACK_0 에서 타겟 다음으로 입력한 매개변수는 개수에 상관없이 무조건 전달됩니다.
CallFuncN 액션과 함께 사용되는 콜백함수는 무조건 CC_CALLBACK_1입니다.
이것도 역시 타겟 다음으로 입력한 매개변수는 개수와 상관없이 무조건 전달합니다.
'cocos2dx' 카테고리의 다른 글
좌우가 연속되는 배경 횡스크롤 (0) | 2023.03.14 |
---|---|
애니메이션 재생후 셀프삭제, using schedule, CardinalSpline (0) | 2023.03.14 |
clipping node (0) | 2023.03.14 |
async loading (0) | 2023.03.14 |
save screenshot (0) | 2023.03.14 |