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 TestParticle::initRain() { CCParticleSystem *emitter = CCParticleRain::create(); emitter->retain(); addChild(emitter, 10); CCPoint p = emitter->getPosition(); emitter->setPosition( ccp( p.x, p.y-100) ); emitter->setLife(4); emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("fire.png") ); emitter->setPosition(ccp(400,50)); emitter->release(); }
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 ParticleLayer::gravityShock(CCObject *pdata) { CCDictionary *dict = dynamic_cast<CCDictionary*>(pdata); float x = dynamic_cast<CCFloat*>(dict->objectForKey("x"))->getValue(); float y = dynamic_cast<CCFloat*>(dict->objectForKey("y"))->getValue(); CCParticleSystem *emitter = createExplodingRing(); emitter->setPosition(ccp(x, y)); }
IntervalLayer::IntervalLayer() { m_time0 = m_time1 = m_time2 = m_time3 = m_time4 = 0.0f; CCSize s = CCDirector::sharedDirector()->getWinSize(); // sun CCParticleSystem* sun = CCParticleSun::node(); sun->setTexture(CCTextureCache::sharedTextureCache()->addImage("Images/fire.png")); sun->setPosition( CCPointMake(s.width-32,s.height-32) ); sun->setTotalParticles(130); sun->setLife(0.6f); this->addChild(sun); // timers m_label0 = CCLabelBMFont::labelWithString("0", "fonts/bitmapFontTest4.fnt"); m_label1 = CCLabelBMFont::labelWithString("0", "fonts/bitmapFontTest4.fnt"); m_label2 = CCLabelBMFont::labelWithString("0", "fonts/bitmapFontTest4.fnt"); m_label3 = CCLabelBMFont::labelWithString("0", "fonts/bitmapFontTest4.fnt"); m_label4 = CCLabelBMFont::labelWithString("0", "fonts/bitmapFontTest4.fnt"); scheduleUpdate(); schedule(schedule_selector(IntervalLayer::step1)); schedule(schedule_selector(IntervalLayer::step2), 0); schedule(schedule_selector(IntervalLayer::step3), 1.0f); schedule(schedule_selector(IntervalLayer::step4), 2.0f); m_label0->setPosition(CCPointMake(s.width*1/6, s.height/2)); m_label1->setPosition(CCPointMake(s.width*2/6, s.height/2)); m_label2->setPosition(CCPointMake(s.width*3/6, s.height/2)); m_label3->setPosition(CCPointMake(s.width*4/6, s.height/2)); m_label4->setPosition(CCPointMake(s.width*5/6, s.height/2)); addChild(m_label0); addChild(m_label1); addChild(m_label2); addChild(m_label3); addChild(m_label4); // Sprite CCSprite* sprite = CCSprite::spriteWithFile(s_pPathGrossini); sprite->setPosition( CCPointMake(40,50) ); CCJumpBy* jump = CCJumpBy::actionWithDuration(3, CCPointMake(s.width-80,0), 50, 4); addChild(sprite); sprite->runAction( CCRepeatForever::actionWithAction( (CCActionInterval*)(CCSequence::actions(jump, jump->reverse(), NULL )) ) ); // pause button CCMenuItem* item1 = CCMenuItemFont::itemFromString("Pause", this, menu_selector(IntervalLayer::onPause) ); CCMenu* menu = CCMenu::menuWithItems(item1, NULL); menu->setPosition( CCPointMake(s.width/2, s.height-50) ); addChild( menu ); }
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 CCDisplayFactory::updateParticleDisplay(CCBone *bone, CCNode *display, float dt, bool dirty) { CCParticleSystem *system = (CCParticleSystem *)display; CCBaseData node; CCTransformHelp::matrixToNode(bone->nodeToArmatureTransform(), node); system->setPosition(node.x, node.y); system->setScaleX(node.scaleX); system->setScaleY(node.scaleY); system->update(dt); }
void CS_DISPLAY_PARTICLE_UPDATE(Bone *bone, DecorativeDisplay *decoDisplay, float dt, bool dirty) { CCParticleSystem *system = (CCParticleSystem*)decoDisplay->getDisplay(); Node node; TransformHelp::matrixToNode(bone->nodeToArmatureTransform(), node); system->setPosition(node.x, node.y); system->setScaleX(node.scaleX); system->setScaleY(node.scaleY); system->update(dt); }
void TestParticle::initFlower() { CCParticleSystem *emitter = CCParticleFlower::create(); emitter->retain(); addChild(emitter,10); // emitter->setStartSize(20.f); emitter->setSpeed(100.f); emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("stars.png")); emitter->setPosition(ccp(size.width/6*1,size.height-250)); emitter->release(); }
void TestParticle::initSpiral() { CCParticleSystem *emitter = CCParticleSpiral::create(); emitter->retain(); addChild(emitter,10); emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png")); emitter->setPosition(ccp(250,50)); emitter->release(); }
void TestParticle::initSun() { CCParticleSystem *emitter = CCParticleSun::create(); emitter->retain(); addChild(emitter,10); emitter->setStartSize(20.f); emitter->setSpeed(50.f); emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png")); emitter->setPosition(ccp(size.width/6*4,size.height-85)); emitter->release(); }
void TestParticle::initFirework() { CCParticleSystem *emitter = CCParticleFireworks::create(); emitter->retain(); addChild(emitter,10); emitter->setStartSize(20.0f); emitter->setSpeed(150.0f); emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("stars.png")); //emitter->setDuration(5.0f); emitter->setPosition(ccp(size.width/6*2,size.height-150)); emitter->release(); }
void TestParticle::initExplosion() { CCParticleSystem *emitter = CCParticleExplosion::create(); emitter->retain(); addChild(emitter, 10); emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("stars.png") ); emitter->setAutoRemoveOnFinish(true); emitter->setPosition(ccp(400,50)); emitter->release(); }
void TestParticle::initSmoke() { CCParticleSystem *emitter = CCParticleSmoke::create(); emitter->retain(); this->addChild(emitter, 10); emitter->setStartSize(20.0f); //emitter->setTotalParticles(300); emitter->setSpeed(150.0f); //设置速度 emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("fire.png") ); //设置图片 //emitter->setDuration(5.0f); //设置时间 emitter->setPosition(ccp(size.width/6,size.height-150)); //设置初始位置 emitter->release(); }
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 HelloWorld::ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent) { CCNode* node = this->getChildByTag(TileMapNode); //NSAssert([node isKindOfClass:[CCTMXTiledMap class]], @"not a CCTMXTiledMap"); CCTMXTiledMap* tileMap = (CCTMXTiledMap*)node; // get the position in tile coordinates from the touch location CCPoint touchLocation = this->locationFromTouch((cocos2d::CCTouch *)pTouches->anyObject()); CCPoint tilePos = this->tilePosFromLocation(touchLocation, tileMap); //// move tilemap so that touched tiles is at center of screen this->centerTileMapOnTileCoord(tilePos, tileMap); // Check if the touch was on water (eg. tiles with isWater property drawn in GameEventLayer) bool isTouchOnWater = false; CCTMXLayer* eventLayer = tileMap->layerNamed("GameEventLayer"); int tileGID = eventLayer->tileGIDAt(tilePos); // if (tileGID != 0) { CCDictionary* properties = tileMap->propertiesForGID(tileGID); if (properties) { //CCLOG(@"NSDictionary 'properties' contains:\n%@", properties); const CCString * isWaterProperty = properties->valueForKey("isWater"); isTouchOnWater = isWaterProperty->boolValue(); } } // Check if the touch was within one of the rectangle objects CCTMXObjectGroup* objectLayer = tileMap->objectGroupNamed("ObjectLayer"); //NSAssert([objectLayer isKindOfClass:[CCTMXObjectGroup class]], // @"ObjectLayer not found or not a CCTMXObjectGroup"); bool isTouchInRectangle = false; int numObjects = objectLayer->getObjects()->count(); for (int i = 0; i < numObjects; i++){ CCDictionary* properties = (CCDictionary*)objectLayer->getObjects()->objectAtIndex(i); CCRect rect = this->getRectFromObjectProperties(properties, tileMap); // if (CCRect::CCRectContainsPoint(rect, touchLocation)) { isTouchInRectangle = true; break; } } // decide what to do depending on where the touch was ... if (isTouchOnWater) { //[[SimpleAudioEngine sharedEngine] playEffect:@"alien-sfx.caf"]; CCLog("touchOnWater"); } else if (isTouchInRectangle) { CCLog("touchObject"); CCParticleSystem* system = CCParticleSystemQuad::particleWithFile("fx-explosion.plist"); system->setAutoRemoveOnFinish(true); system->setPosition(touchLocation); this->addChild(system, 1); } else { #if 0 // get the winter layer and toggle its visibility CCTMXLayer* winterLayer = tileMap->layerNamed("WinterLayer"); winterLayer->setVisible(!winterLayer->isVisible()); // other options you might be interested in are: // remove the touched tile winterLayer->removeTileAt(tilePos); // add a specific tile tileGID = winterLayer->tileGIDAt(CCPointMake(0, 19)); winterLayer->setTileGID(tileGID, tilePos); #endif } }
void HelloWorld::createParticleEffect(const char* filename, float x, float y) { CCParticleSystem* emitter = CCParticleSystemQuad::create(filename); emitter->setPosition(x,y); emitter->setAutoRemoveOnFinish(true); addChild(emitter, 10); }
void ccbLoginEDLayer::onNodeLoaded(cocos2d::CCNode * pNode, cocos2d::extension::CCNodeLoader * pNodeLoader) { s_pccbLoginEDLayer = this; m_pPrizeBoard = pNode->getChildByTag(102); m_pBoard = pNode->getChildByTag(101); m_pBoard->setZOrder(5); CCSprite* pBG = CCSprite::create("tu16/zhuanpan/limian.png"); pBG->setPosition( CCPoint(d_iBgLocation) ); m_pBoard->addChild(pBG, -5); m_pLayer = CSizeLayer::createWithSize(CCSize(424, 138/*800, 480*/)); m_pLayer->setPosition(ccp(106,160)); m_pBoard->addChild(m_pLayer, -1); for (int i = 0; i < 2; i++ ) { m_pBar[i] = CCSprite::create("tu16/zhuanpan/pao.png"); m_pBar[i]->setPosition( ccp(d_iBarX-i*d_iBar, d_iLocationY) ); m_pBar[i]->setAnchorPoint( ccp(0,0) ); m_pLayer->addChild(m_pBar[i], -2); } CCParticleSystem* pParticle = CCParticleSystemQuad::create("tu16/zhuanpan/beihou.plist"); pParticle->setAnchorPoint(ccp(0.5f, 0.5f)); pParticle->setPosition( CCPoint(d_iLocationX(1), 75) ); m_pLayer->addChild(pParticle, -2); CCSprite* pSprite = CCSprite::create("tu16/zhuanpan/xuanzhong1.png"); CCArray* animFrames = CCArray::createWithCapacity(2); { CCSpriteFrame* frame = CCSpriteFrame::create("tu16/zhuanpan/xuanzhong1.png",CCRect(0, 0, d_iGridWH)); animFrames->addObject(frame); } { CCSpriteFrame* frame = CCSpriteFrame::create("tu16/zhuanpan/xuanzhong2.png",CCRect(0, 0, d_iGridWH)); animFrames->addObject(frame); } CCAnimation* pAnimation = CCAnimation::createWithSpriteFrames(animFrames, 0.1f); pSprite->runAction( CCRepeatForever::create(CCAnimate::create(pAnimation)) ); pSprite->setAnchorPoint(ccp(0.5f, 0.5f)); pSprite->setPosition( ccp(d_iLocationX(1), 75) ); m_pLayer->addChild(pSprite, -2); //m_pStarAnimation->retain(); CCNode* pLoginDayBoard = pNode->getChildByTag(103); for ( int i = 0; i < 3 - AppDelegate::s_PrizeDayNum; i++ ) { CCSprite* pSprite = CCSprite::create("tu16/an.png"); pSprite->setPosition(ccp(_DayX[i], _DayY[i])); pLoginDayBoard->addChild(pSprite); } if ( AppDelegate::s_WeaponOwn[7] ) {//以后 CCSprite* pSprite2 = CCSprite::create("tu16/qian.png"); pSprite2->setPosition(ccp(141, 70)); pLoginDayBoard->addChild(pSprite2); CCSprite* pSprite1 = CCSprite::create("tu16/jiangli500.png"); pSprite1->setPosition(ccp(141, 180)); pLoginDayBoard->addChild(pSprite1); } else {//第一次 CCSprite* pSprite3 = CCSprite::create("tu16/qiang1.png"); //CCScaleTo* pAction1 = CCScaleTo::create(0.5f, 0.8f); //CCScaleTo* pAction2 = CCScaleTo::create(0.2f, 1.0f); //pSprite3->runAction( CCRepeatForever::create(CCSequence::create(pAction1, pAction2, NULL)) ); pSprite3->setPosition(ccp(141, 70)); pLoginDayBoard->addChild(pSprite3); CCSprite* pSprite2 = CCSprite::create("tu16/qiang2.png"); pSprite2->setAnchorPoint(ccp(0.8f, 0.2f)); CCScaleTo* pAction1 = CCScaleTo::create(0.5f, 1.3f); CCScaleTo* pAction2 = CCScaleTo::create(0.2f, 1.0f); CCDelayTime* pAction3 = CCDelayTime::create(1.5f); pSprite2->runAction( CCRepeatForever::create(CCSequence::create(pAction1, pAction2, pAction3, NULL)) ); pSprite2->setPosition(ccp(168, 33)); pLoginDayBoard->addChild(pSprite2); CCSprite* pSprite1 = CCSprite::create("tu16/santian.png"); pSprite1->setPosition(ccp(145, 180)); pLoginDayBoard->addChild(pSprite1); } { CCNodeLoaderLibrary* ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary(); ccNodeLoaderLibrary->registerCCNodeLoader("ccbGetPrizeLayer", ccbGetPrizeLayerLoader::loader()); cocos2d::extension::CCBReader* ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary); m_pGetPrize = (ccbGetPrizeLayer*)ccbReader->readNodeGraphFromFile("23.ccbi"/*, this*/); m_pGetPrize->setAnimationManager(ccbReader->getAnimationManager()); m_pGetPrize->setPosition(ccp(0,0)); addChild(m_pGetPrize, 5); ccbReader->release(); } setVisible(false); }
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(); }
void StartScene::update(float dt) { DataModel *m = DataModel::getModel(); Vector<Projectile*> projectilesToDelete; for (int i = 0; i < m->projectiles.size(); i++) { Projectile* projectile = (Projectile*)(m->projectiles.at(i)); Rect projectileRect = Rect(projectile->getPositionX() - (projectile->getContentSize().width / 2), projectile->getPositionY() - (projectile->getContentSize().height / 2), projectile->getContentSize().width, projectile->getContentSize().height); for (int i = 0; i < m->targets.size(); i++) { Creep* target = (Creep*)(m->targets.at(i)); Rect targetRect = Rect(target->getPositionX() - (target->sprite->getContentSize().width / 2), target->getPositionY() - (target->sprite->getContentSize().height / 2), target->sprite->getContentSize().width, target->sprite->getContentSize().height); if (projectileRect.intersectsRect(targetRect)) { projectilesToDelete.pushBack(projectile); Creep *creep = target; creep->curHp -= projectile->power; creep->lifeBar->setPercentage(static_cast<float>(creep->curHp*100)/creep->maxHp); CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("hit.wav"); if (creep->curHp <= 0) { // targetsToDelete.pushBack(creep); m->targets.eraseObject(creep); CCParticleSystem* particleSystem = CCParticleExplosion::create(); particleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("bullet2.png")); particleSystem->setPosition(creep->getPosition()); particleSystem->setScale(0.15); particleSystem->setLife(1); this->addChild(particleSystem); // creep->removeAllChildren(); // creep->sprite = Sprite::create("blast7.png"); // creep->addChild(creep->sprite,0); this->removeChild(creep,true); CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("blast.wav"); m->currentMoney += creep->bonusMoney; money->setText(to_string(m->currentMoney)); } // for (int i = 0; i < targetsToDelete.size(); i++) // { // Creep *target = (Creep*)(targetsToDelete.at(i)); // m->targets.eraseObject(target); // this->removeChild(target, true); // CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("blast.wav"); // } break; } } } for (int i =0; i < projectilesToDelete.size(); i++) { Projectile *projectile = (Projectile*)(projectilesToDelete.at(i)); m->projectiles.eraseObject(projectile); this->removeChild(projectile,true); } if (this->currentLevel==-1&&m->targets.size()==0) { //win Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstance()->getVisibleOrigin(); // auto winPic = Sprite::create("win.png"); // winPic->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); //// winPic->setScale(2); // this->addChild(winPic,2); widget = dynamic_cast<Layout*>(cocostudio::GUIReader::getInstance()->widgetFromJsonFile("OverUi_1/WinUi_1.json")); widget->setPosition(Point(visibleSize.width/2 + origin.x -widget->getContentSize().width/2, visibleSize.height/2 + origin.y - widget->getContentSize().height/2)); this->addChild(widget,2); auto star1 = dynamic_cast<ImageView*>(widget->getChildByName("Star_1")); auto star2 = dynamic_cast<ImageView*>(widget->getChildByName("Star_2")); auto star3 = dynamic_cast<ImageView*>(widget->getChildByName("Star_3")); auto restartButton = dynamic_cast<Button*>(widget->getChildByName("RestartBTN")); auto continueButton = dynamic_cast<Button*>(widget->getChildByName("ContinueBTN")); restartButton->addTouchEventListener(this, toucheventselector(StartScene::restartEvent)); continueButton->addTouchEventListener(this, toucheventselector(StartScene::continueEvent)); if (m->home->homeHP>=1&& m->home->homeHP<=3) { star2->setVisible(false); star3->setVisible(false); } else if (m->home->homeHP>=4&&m->home->homeHP<=9) { star3->setVisible(false); } this->cleanup(); } }
void ADParticleSystemCache::playParticleSystem( const char *pFileName, const CCPoint &pos ) { CCParticleSystem *pPart = addParticleSystem( pFileName ); pPart->setPosition( pos ); pPart->resetSystem(); }
void StartScene::FollowPath(Node *sender) { DataModel *m = DataModel::getModel(); Creep* creep = (Creep *)sender; WayPoint* curWaypoint = creep->getCurrentWaypoint(); WayPoint* waypoint = creep->getNextWaypoint(); if (waypoint!=nullptr) { Point moveVector = waypoint->getPosition()-curWaypoint->getPosition(); float angle = ccpToAngle(moveVector); float cocosAngle = CC_RADIANS_TO_DEGREES(angle); // std::ostringstream text("angle = "); // text<<std::to_string(cocosAngle)<<" curPoint("<<std::to_string(curWaypoint->getPosition().x)<<","<<std::to_string(curWaypoint->getPosition().y)<<") nextPoint("<<std::to_string(waypoint->getPosition().x)<<","<<std::to_string(waypoint->getPosition().y)<<")"; // log(text.str().c_str()); if (cocosAngle==0) { if (creep->inverse) { cocosAngle += 180; creep->lifeBar->setPosition(creep->sprite->getPosition().x, creep->sprite->getPosition().y-60); } else creep->lifeBar->setPosition(creep->sprite->getPosition().x, creep->sprite->getPosition().y+60); creep->emptyLifeBar->setPosition(creep->lifeBar->getPosition()); } else if(cocosAngle==180) { if (creep->inverse) { cocosAngle += 180; creep->lifeBar->setPosition(creep->sprite->getPosition().x, creep->sprite->getPosition().y+60); } else creep->lifeBar->setPosition(creep->sprite->getPosition().x, creep->sprite->getPosition().y-60); creep->emptyLifeBar->setPosition(creep->lifeBar->getPosition()); } else { if (!creep->inverse) cocosAngle += 180; } sender->setRotation(cocosAngle); int moveDuration = creep->moveDuration; auto actionMove = MoveTo::create(moveDuration, waypoint->getPosition()); auto actionMoveDone = CallFuncN::create(this, callfuncN_selector(StartScene::FollowPath)); creep->stopAllActions(); // creep->lifeBar->stopAllActions(); creep->runAction(Sequence::create(actionMove, actionMoveDone, NULL)); // creep->lifeBar->runAction(Sequence::create(lifeBarActionMove, NULL)); } else { m->home->homeHP--; life->setText(to_string(m->home->homeHP)); CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("blast.wav"); m->targets.eraseObject(creep); this->removeChild(creep); CCParticleSystem* particleSystem = CCParticleExplosion::create(); particleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("bullet2.png")); particleSystem->setPosition(creep->getPosition()); particleSystem->setScale(0.15); particleSystem->setLife(1); this->addChild(particleSystem); if (m->home->homeHP<=0) { m->home->removeAllChildren(); m->home->sprite = Sprite::create("destroy.png"); m->home->sprite->setScale(0.7); m->home->addChild(m->home->sprite,0); Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstance()->getVisibleOrigin(); auto losePic = Sprite::create("over.png"); losePic->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); this->addChild(losePic,3); widget = dynamic_cast<Layout*>(cocostudio::GUIReader::getInstance()->widgetFromJsonFile("OverUi_1/LoseUi_1.json")); widget->setPosition(Point(visibleSize.width/2 + origin.x -widget->getContentSize().width/2, visibleSize.height/2 + origin.y - widget->getContentSize().height/2)); this->addChild(widget,2); auto restartButton = dynamic_cast<Button*>(widget->getChildByName("RestartBTN")); auto mainMenuButton = dynamic_cast<Button*>(widget->getChildByName("MainMenuBTN")); restartButton->addTouchEventListener(this, toucheventselector(StartScene::restartEvent)); mainMenuButton->addTouchEventListener(this, toucheventselector(StartScene::mainMenuEvent)); this->cleanup(); } else { std::string home = to_string(m->home->homeHP) + ".png"; m->home->removeAllChildren(); m->home->sprite = Sprite::create(home); m->home->sprite->setScale(0.7); m->home->addChild(m->home->sprite,0); } } }