void Role::skillAction(SkillState sk){ switch (sk) { case Skill_Blood:{ SimpleAudioEngine::sharedEngine()->playEffect(S_BLOOD); CCParticleSystem* particle = CCParticleSystemQuad::create("Teleport.plist"); particle->setStartColor(ccc4f(0.5, 0.5, 0.5, 1)); particle->setPosition(this->getObjPosition()); GameLogic::Singleton()->getPView()->addChild(particle,99,Blood_Particle_Tag); float bloodValue = GameLogic::Singleton()->getBlood(); GameLogic::Singleton()->setBlood(bloodValue += bloodValue * 0.1);//10% CCLOG("+=================Blood Skill Open===============+"); } break; case Skill_Sprint:{ int deltaTime = 2.0f; if (_skState == Skill_Sprint) deltaTime += 2.0f; else _skState = Skill_Sprint; this->setObjRotation(0); SimpleAudioEngine::sharedEngine()->playEffect(S_SPRINT); CCParticleSystem* particle = CCParticleSystemQuad::create("Sprint.plist"); particle->setPosition(ccpAdd(this->getObjPosition(),ccp(30,0))); GameLogic::Singleton()->getPView()->addChild(particle,99,Sprint_Tag); _standardPoint.x = 200; this->runAction(CCSequence::create(CCDelayTime::create(deltaTime), CCCallFuncND::create(this,callfuncND_selector(Role::sprintFunc),this), NULL)); } break; case Skill_Wave:{ SimpleAudioEngine::sharedEngine()->playEffect(S_WAVE); this->deleteObjectsInWave(); CCSprite* waveSpr = CCSprite::createWithSpriteFrameName("Wave.png"); waveSpr->setScale(0.1f); waveSpr->setPosition(ccp(15, 15)); CCSpawn* spawnAction = CCSpawn::create(CCScaleTo::create(0.5f, 1.5f), CCFadeOut::create(0.5f), NULL); CCSequence* sequceceAction = CCSequence::create(spawnAction, CCCallFuncND::create(this, callfuncND_selector(Role::waveFunc),this), NULL); CCSpeed* aSpeed = CCSpeed::create(sequceceAction, 2.5f); waveSpr->runAction(aSpeed); this->addChild(waveSpr,99,Wave_Tag); } break; default: break; } }
void HelloWorld::createParticleEffect(const char* filename, float x, float y, ccColor4F startColor, float duration, float endSize) { CCParticleSystem* emitter = CCParticleSystemQuad::create(filename); emitter->setPosition(x,y); emitter->setStartColor(startColor); emitter->setDuration(duration); emitter->setEndSize(endSize); emitter->setAutoRemoveOnFinish(true); addChild(emitter, 10); }
void ParticlePerformTest4::doTest() { CCSize s = CCDirector::sharedDirector()->getWinSize(); CCParticleSystem *particleSystem = (CCParticleSystem*) getChildByTag(kTagParticleSystem); // duration particleSystem->setDuration(-1); // gravity particleSystem->setGravity(ccp(0,-90)); // angle particleSystem->setAngle(90); particleSystem->setAngleVar(0); // radial particleSystem->setRadialAccel(0); particleSystem->setRadialAccelVar(0); // speed of particles particleSystem->setSpeed(180); particleSystem->setSpeedVar(50); // emitter position particleSystem->setPosition(ccp(s.width/2, 100)); particleSystem->setPosVar(ccp(s.width/2,0)); // life of particles particleSystem->setLife(2.0f); particleSystem->setLifeVar(1); // emits per frame particleSystem->setEmissionRate(particleSystem->getTotalParticles() / particleSystem->getLife()); // color of particles ccColor4F startColor = {0.5f, 0.5f, 0.5f, 1.0f}; particleSystem->setStartColor(startColor); ccColor4F startColorVar = {0.5f, 0.5f, 0.5f, 1.0f}; particleSystem->setStartColorVar(startColorVar); ccColor4F endColor = {0.1f, 0.1f, 0.1f, 0.2f}; particleSystem->setEndColor(endColor); ccColor4F endColorVar = {0.1f, 0.1f, 0.1f, 0.2f}; particleSystem->setEndColorVar(endColorVar); // size, in pixels particleSystem->setEndSize(64.0f); particleSystem->setStartSize(64.0f); particleSystem->setEndSizeVar(0); particleSystem->setStartSizeVar(0); // additive particleSystem->setBlendAdditive(false); }
void TestParticle::initSnow() { CCParticleSystem *emitter = CCParticleSnow::create(); emitter->retain(); addChild(emitter, 10); CCPoint p = emitter->getPosition(); emitter->setPosition( ccp( p.x, p.y-110) ); emitter->setLife(3); emitter->setLifeVar(1); // gravity emitter->setGravity(ccp(0,-10)); // speed of particles emitter->setSpeed(130); emitter->setSpeedVar(30); ccColor4F startColor = emitter->getStartColor(); startColor.r = 0.9f; startColor.g = 0.9f; startColor.b = 0.9f; emitter->setStartColor(startColor); ccColor4F startColorVar = emitter->getStartColorVar(); startColorVar.b = 0.1f; emitter->setStartColorVar(startColorVar); emitter->setEmissionRate(emitter->getTotalParticles()/emitter->getLife()); emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("snow.png")); emitter->setPosition(ccp(0,480)); emitter->release(); }
void TestParticle::initRotFlower() { CCParticleSystem *emitter = new CCParticleSystemQuad(); emitter->initWithTotalParticles(300); //emitter->autorelease(); addChild(emitter); ////emitter->release(); // win32 : Remove this line emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("stars2.png")); // duration emitter->setDuration(-1); // gravity emitter->setGravity(CCPointZero); // angle emitter->setAngle(90); emitter->setAngleVar(360); emitter->setSpeed(160); emitter->setSpeedVar(20); // radial emitter->setRadialAccel(-120); emitter->setRadialAccelVar(0); // tagential emitter->setTangentialAccel(30); emitter->setTangentialAccelVar(0); // emitter position emitter->setPosition( ccp(160,240) ); emitter->setPosVar(CCPointZero); // life of particles emitter->setLife(3); emitter->setLifeVar(1); // spin of particles emitter->setStartSpin(0); emitter->setStartSpinVar(0); emitter->setEndSpin(0); emitter->setEndSpinVar(2000); ccColor4F startColor = {0.5f, 0.5f, 0.5f, 1.0f}; emitter->setStartColor(startColor); ccColor4F startColorVar = {0.5f, 0.5f, 0.5f, 1.0f}; emitter->setStartColorVar(startColorVar); ccColor4F endColor = {0.1f, 0.1f, 0.1f, 0.2f}; emitter->setEndColor(endColor); ccColor4F endColorVar = {0.1f, 0.1f, 0.1f, 0.2f}; emitter->setEndColorVar(endColorVar); // size, in pixels emitter->setStartSize(30.0f); emitter->setStartSizeVar(00.0f); emitter->setEndSize(kParticleStartSizeEqualToEndSize); // emits per second emitter->setEmissionRate(emitter->getTotalParticles()/emitter->getLife()); // additive emitter->setBlendAdditive(false); emitter->setPosition(ccp(size.width/6*5,size.height-250)); emitter->release(); }