粒子系统在 cocos2d-x 中第一次不可见

Posted

技术标签:

【中文标题】粒子系统在 cocos2d-x 中第一次不可见【英文标题】:Particle system not getting visible for first time in cocos2d-x 【发布时间】:2013-08-27 11:23:09 【问题描述】:

最近两周我在 cocos2d-x 工作。我在 cocos2d-iphone 上做了一个游戏。现在我正在尝试使用 cocos2d-x 从 android 设备上做同样的事情。当玩家收集星星时,我正在使用粒子系统。 当玩家第一次收集星星时,粒子系统没有显示。之后对于每个明星收藏,它都会变得可见。我检查了它是否正在执行用于显示粒子系统的功能。

添加粒子系统的代码为:

CCParticleSystemQuad *system = CCParticleSystemQuad::create("stars.plist");
                            system->setTexture(CCTextureCache::sharedTextureCache()->addImage("stern.png"));
                            system->setPosition(starSprite->getPosition().x, starSprite->getPosition().y);
system->setLife(2);
system->setLifeVar(2);
system->setAutoRemoveOnFinish(true);
this->addChild(system,2);

有人告诉我为什么会这样吗?

【问题讨论】:

在 CCParticleSystem::update 中放置一个断点并确保它被调用,您可能在更新的调度/取消调度方面遇到问题... 我粘贴了相同的代码,它运行良好。您确定相同的代码被称为“jonynz”吗?能否请您提及您的 cocos2d-x 版本。 【参考方案1】:

使用此代码一次定义您的粒子系统,在 h 文件中声明“系统”,以便稍后在 cpp 文件中使用它。

CCParticleSystemQuad *system = CCParticleSystemQuad::create("stars.plist");
                            system->setTexture(CCTextureCache::sharedTextureCache()->addImage("stern.png"));
                            system->setPosition(starSprite->getPosition().x, starSprite->getPosition().y);
system->setLife(2);
system->setLifeVar(2);
system->stopSystem();
this->addChild(system,2);

现在你收集星星的时候就放这行

系统->resetSystem();

每次收集星星时,粒子系统都会被重置并显示:)

【讨论】:

以上是关于粒子系统在 cocos2d-x 中第一次不可见的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2d-x粒子系统

cocos2d-x:Particle System(粒子系统)

Part 12:Cocos2d-x开发实战-Cocos中粒子系统-关东升-专题视频课程

关于Cocos2d-x的粒子系统

关于Cocos2d-x 3.0正式版 粒子问题在IOS上正常显示,在Android下有问题的解决方式

Cocos2d-X中的粒子