Beispiel #1
0
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);

}
Beispiel #4
0
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();
}
Beispiel #5
0
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();

}