void GameResultSuccess::playWingAction(void) { auto NodeWing = (Node*)GameMainLayer::seekNodeByName(_myLayer, "NodeWing"); NodeWing->setScale(1.2f); // 右流光效果 auto imgLeftWing = Sprite::create("ccsRes/resResoutLayer/ImgWing.png"); imgLeftWing->setAnchorPoint(Vec2(0, 0.5)); Size clipSize = imgLeftWing->getContentSize(); Sprite* spark = Sprite::create("FirstUIRes/Sptigeguang.png"); spark->setScaleY(1.2f); //spark->setPosition(-clipSize.width, -50); ClippingNode* clippingLeftNode = ClippingNode::create(); NodeWing->addChild(clippingLeftNode); clippingLeftNode->setAlphaThreshold(0.05f); //设置alpha闸值 clippingLeftNode->setContentSize(clipSize); //设置尺寸大小 clippingLeftNode->setStencil(imgLeftWing); //设置模板stencil clippingLeftNode->addChild(imgLeftWing, 1); //先添加标题,会完全显示出来,因为跟模板一样大小 clippingLeftNode->addChild(spark, 2); //会被裁减 MoveTo* moveAction = MoveTo::create(1.0f, Vec2(clipSize.width, 0)); MoveTo* moveBackAction = MoveTo::create(0.01f, Vec2(-clipSize.width, 0)); spark->runAction(RepeatForever::create(Sequence::create(CCDelayTime::create(1.5f), moveAction, moveBackAction, NULL))); // 左流光效果 auto imgRightWing = Sprite::create("ccsRes/resResoutLayer/ImgWing.png"); imgRightWing->setFlipX(true); imgRightWing->setAnchorPoint(Vec2(1, 0.5)); clipSize = imgRightWing->getContentSize(); Sprite* rightspark = Sprite::create("FirstUIRes/Sptigeguang.png"); rightspark->setFlipX(true); rightspark->setScaleY(1.2f); //spark->setPosition(-clipSize.width, -50); ClippingNode* clippingRightNode = ClippingNode::create(); NodeWing->addChild(clippingRightNode); clippingRightNode->setAlphaThreshold(0.05f); //设置alpha闸值 clippingRightNode->setContentSize(clipSize); //设置尺寸大小 clippingRightNode->setStencil(imgRightWing); //设置模板stencil clippingRightNode->addChild(imgRightWing, 1); //先添加标题,会完全显示出来,因为跟模板一样大小 clippingRightNode->addChild(rightspark, 2); //会被裁减 MoveTo* moveAction1 = MoveTo::create(1.0f, Vec2(-clipSize.width, 0)); MoveTo* moveBackAction1 = MoveTo::create(0.01f, Vec2(clipSize.width, 0)); rightspark->runAction(RepeatForever::create(Sequence::create(CCDelayTime::create(1.5f), moveAction1, moveBackAction1, NULL))); }
bool HelloWorld::init() { if ( !Layer::init() ) { return false; } visibleSize = Director::getInstance()->getVisibleSize(); winSize = Director::getInstance()->getWinSize(); origin = Director::getInstance()->getVisibleOrigin(); Sprite* bg = Sprite::create("HelloWorld.png"); bg->setPosition(visibleSize / 2); //this->addChild(bg, -1); Sprite* gameTitle = Sprite::create("game_title.png"); Size clipSize = gameTitle->getContentSize(); Sprite* spark = Sprite::create("spark.png"); spark->setPosition(-clipSize.width, 0); ClippingNode* clippingNode = ClippingNode::create(); clippingNode->setAlphaThreshold(0); clippingNode->setContentSize(clipSize); clippingNode->setPosition(visibleSize / 2); this->addChild(clippingNode); clippingNode->setStencil(gameTitle); //设置模板 clippingNode->addChild(gameTitle, 1); //先添加标题,会完全显示出来,因为跟模板一样大小 clippingNode->addChild(spark,2); //会被裁减 MoveTo* moveAction = MoveTo::create(2.0f, Vec2(clipSize.width, 0)); MoveTo* moveBackAction = MoveTo::create(2.0f, Vec2(-clipSize.width, 0)); Sequence* seq = Sequence::create(moveAction, moveBackAction, NULL); RepeatForever* repeatAction = RepeatForever::create(seq); spark->runAction(repeatAction); //进行左右移动的重复动作 return true; }
bool ExorbitanceScene::init() { if(!Layer::init()) { return false; } SpriteFrameCache::getInstance()->addSpriteFramesWithFile(HERO_PICTURE_PLIST); std::string df = FileUtils::getInstance()->getWritablePath() + SAVEYOURSISTERSQL; if(!FileUtils::getInstance()->isFileExist(df)) { log("There is a sqlite!"); } else { std::string fe = FileUtils::getInstance()->fullPathForFilename(SAVEYOURSISTERSQL); std::string df = FileUtils::getInstance()->getWritablePath() + SAVEYOURSISTERSQL; log("database path == %s", df.c_str()); fileCopy(fe.c_str(),df.c_str()); } //数据库操作 opendb(); querySkillDb(); queryHeroDb(); queryGearDb(); //开始界面显示 Size vSize = Director::getInstance()->getVisibleSize(); //背景 Sprite * ground = Sprite::create("startground.png"); ground->setPosition(vSize/2); this->addChild(ground); //进入游戏按钮实现 Vec2 vOrigin = Director::getInstance()->getVisibleOrigin(); ClippingNode * cl = ClippingNode::create(); cl->setAlphaThreshold(0.5f); cl->setAnchorPoint(Vec2(0.5,0.5)); this->addChild(cl); auto l1 = Label::createWithTTF("SAVE,YOUR,SISTER","Marker Felt.ttf",80,Size::ZERO, TextHAlignment::CENTER); l1->setColor(Color3B::BLACK); l1->setPosition(400,500); cl->addChild(l1); auto sp = Sprite::create("Orb_Icons_003.png"); sp->setPosition(l1->getPosition().x - l1->getContentSize().width/2,l1->getPositionY()); cl->setStencil(sp); auto mv = MoveBy::create(fabsf(vSize.width/100),Vec2(vSize.width-l1->getPositionX(),0)); sp->runAction(RepeatForever::create(Sequence::create(mv,mv->reverse(),NULL))); auto bg = Sprite::create("jnm.png"); bg->setPosition(300,300); this->addChild(bg); auto lb = Label::createWithTTF("Please Click On The Screen","Marker Felt.ttf",30,Size::ZERO, TextHAlignment::CENTER); lb->setPosition(600,300); lb->setColor(Color3B::BLACK); lb->runAction(RepeatForever::create(Sequence::create(FadeIn::create(0.8),FadeOut::create(0.8),NULL))); this->addChild(lb); auto listen = EventListenerTouchOneByOne::create(); listen->onTouchBegan = [=](Touch *t,Event *e) { auto scene = StartScene::createScene(); Director::getInstance()->replaceScene(scene); SimpleAudioEngine::getInstance()->playEffect("select.wav"); return true; }; Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listen,this); return true; }