粒子系统在 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:Particle System(粒子系统)
Part 12:Cocos2d-x开发实战-Cocos中粒子系统-关东升-专题视频课程