void PianoKeyBoard::drawImageKey(cocos2d::Node *node, PianoKey *key, int zOder) { if (key == NULL) { return ; } Rect rct = key->rect_; MenuItemImage *keySprite ; if (key->type_ != BLACK_KEY) { keySprite = MenuItemImage::create(whiteNormalPix_, whiteDownPix_, CC_CALLBACK_1(PianoKeyBoard::keyTouched, this)) ; keySprite->setPosition(rct.origin.x, rct.origin.y) ; }else { keySprite = MenuItemImage::create(blackNormalPix_, blackDownPix_, CC_CALLBACK_1(PianoKeyBoard::keyTouched, this)) ; keySprite->setPosition(rct.origin.x, rct.origin.y+119) ; } keySprite->setAnchorPoint(Point::ZERO) ; keySprite->setTag(key->note_) ; node->addChild(keySprite, zOder) ; }
bool GameOver::init() { bool ret = false; do { CC_BREAK_IF(!Layer::init()); Sprite *backGround1 = Sprite::createWithSpriteFrameName("gameover.png"); backGround1->setAnchorPoint(Point(0, 0)); backGround1->setPosition(Point(0, 0)); this->addChild(backGround1, -1, 0); Size size = Director::getInstance()->getWinSize(); MenuItemImage *item = MenuItemImage::create("ui/shoot_background/btn_finish.png" , "ui/shoot_background/btn_finish.png", menuCallback); Menu *menu = Menu::create(item, NULL); addChild(menu); item->setAnchorPoint(Point(0, 0)); menu->setPosition(Point(0, 0)); item->setPosition(Point(size.width - item->getContentSize().width, 0)); m_scoreLabel = LabelTTF::create("0", "Arial", 28); m_scoreLabel->setFontSize(40); addChild(m_scoreLabel); m_scoreLabel->setPosition(Point(size.width * 0.5, size.height * 0.5)); ret = true; } while (0); return ret; }
void MainLayer::initMenu() { do { //单机游戏 //3.0两种写法 MenuItemImage *pSingleGameItem = MenuItemImage::create( "button_singleNormal.png", "button_singleSelected.png", std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1)); /* MenuItemImage *pSingleGameItem = MenuItemImage::create( "button_singleNormal.png", "button_singleSelected.png", CC_CALLBACK_1(MainLayer::menuCloseCallback, this)); */ CC_BREAK_IF(! pSingleGameItem); pSingleGameItem->setTag(MENU_SINGLE_GAME_TAG); pSingleGameItem->setAnchorPoint(Vec2(0.5,0.5)); //多人游戏 MenuItemImage *pMultiGameItem = MenuItemImage::create( "button_multiNormal.png", "button_multiSelected.png", std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1)); CC_BREAK_IF(! pMultiGameItem); pMultiGameItem->setTag(MENU_MULTI_GAME_TAG); //关于我们 MenuItemImage *pAboutUsItem = MenuItemImage::create( "button_aboutNormal.png", "button_aboutSelected.png", std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1)); CC_BREAK_IF(! pAboutUsItem); pAboutUsItem->setTag(MENU_ABOUT_GAME_TAG); //退出游戏 MenuItemImage *pExitGameItem = MenuItemImage::create( "button_exitNormal.png", "button_exitSelected.png", std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1)); pExitGameItem->setTag(MENU_EXIT_GAME_TAG); CC_BREAK_IF(! pExitGameItem); pMenu = Menu::create(pSingleGameItem, pMultiGameItem,pAboutUsItem ,pExitGameItem, NULL); pMenu->setPosition(Vec2(Director::getInstance()->getWinSize().width/2, Director::getInstance()->getWinSize().height/2)); pMenu->alignItemsVerticallyWithPadding(50); CC_BREAK_IF(! pMenu); this->addChild(pMenu); } while(0); }
void MenuLayer::setResults(Results r) { auto wiew = Director::getInstance()->getOpenGLView()->getDesignResolutionSize(); auto callback = std::bind(&MenuLayer::menuCloseCallback, this, this); MenuItemImage* goToLevels; MenuItemImage* nextReload; auto goNextMap = std::bind(&MenuLayer::nextMap, this, this); auto reload = std::bind(&MenuLayer::reloadMap, this, this); auto back = std::bind(&MenuLayer::backToMap, this, this); switch (r) { case WIN: nextReload = MenuItemImage::create("exit_pressed.png", "exit_pressed.png", goNextMap); break; case LOSE: nextReload = MenuItemImage::create("exit_pressed.png", "exitGame.png", reload); break; case PAUSE: nextReload = MenuItemImage::create("exitGame.png", "exit_pressed.png", back); break; default: break; } goToLevels = MenuItemImage::create("exitGame.png", "exit_pressed.png", callback); goToLevels->setAnchorPoint(Vec2(1, 0)); goToLevels->setPosition(Vec2(wiew.width, 0)); nextReload->setAnchorPoint(Vec2(1, 0)); nextReload->setPosition(Vec2(wiew.width, nextReload->getBoundingBox().size.height)); Menu* pMenu = Menu::create(goToLevels, nextReload, NULL); pMenu->setPosition(Point::ZERO); addChild(pMenu, 1); };
bool HWorld::init() { if (!Layer::init() ) { return false; } sh=this; SpriteFrameCache* cache = SpriteFrameCache::getInstance(); cache->addSpriteFramesWithFile("button.plist","button.png"); //播放游戏中的音乐 SimpleAudioEngine::getInstance()->playBackgroundMusic("gameMusic.mp3",true); //地图 HMap * map = HMap::createMap("img_bg_level_1.jpg"); addChild(map); //主角 HPlayer * player=HPlayer::createPlayer("hero.png"); addChild(player,1,tag_player); bulletBatchNode = SpriteBatchNode::create("heroBullet.png"); this->addChild(bulletBatchNode); //创建子弹逻辑(创建间隔0.4秒) this->schedule(schedule_selector(HWorld::autoCreateBullet),0.4f); //创建敌怪逻辑 this->schedule(schedule_selector(HWorld::autoCreateEnemy)); if(touchType) { //this->setTouchEnabled(true); }else { //虚拟手柄 Button * button = Button::createButton(player, this); addChild(button); } MenuItemImage *pause = MenuItemImage::create("pause.png", "pause.png", CC_CALLBACK_1(HWorld::doPause, this)); pause->setAnchorPoint(Vec2(1, 1)); pause->setPosition(Vec2(Director::getInstance()->getWinSize().width-10, Director::getInstance()->getWinSize().height-10)); Menu *menu = Menu::create(pause, NULL); menu->setAnchorPoint(Vec2(0, 0)); addChild(menu, 1, 10); menu->setPosition(Vec2(0, 0)); smallEnemyTime = 0; mediumEnemyTime = 0; bigEnemyTime = 0; smallEnemyTime2 = 0; mediumEnemyTime2 = 0; auto _listener_touch = EventListenerTouchOneByOne::create(); _listener_touch->onTouchBegan = CC_CALLBACK_2(HWorld::TouchBegan, this); _listener_touch->onTouchMoved = CC_CALLBACK_2(HWorld::TouchMoved, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(_listener_touch, this); return true; }
//一些菜单的设置不看也可以,与地图相关的操作在okCallback里面 void HelloWorld::createInitMenu() { Size visibleSize = Director::getInstance()->getVisibleSize(); m_setLayer = Layer::create(); this->addChild(m_setLayer); //方向设置 Vector<MenuItem*> dirItemFronts; dirItemFronts.pushBack(MenuItemFont::create("Right to Left")); dirItemFronts.pushBack(MenuItemFont::create("Left to Right")); dirItemFronts.pushBack(MenuItemFont::create("Top to Bottom")); dirItemFronts.pushBack(MenuItemFont::create("Bottom to Top")); m_dirSelItem = MenuItemToggle::createWithCallback( CC_CALLBACK_1(HelloWorld::toggleCallback,this), dirItemFronts); m_dirSelItem->setAnchorPoint(Vec2(0.5f,0.5f)); m_dirSelItem->setPosition(Vec2(visibleSize.width/2 , visibleSize.height/4*3)); MenuItemImage *nextDir = MenuItemImage::create( "nextNor.png", "nextCli.png", CC_CALLBACK_1(HelloWorld::dirChangeCallback,this)); nextDir->setTag(1); nextDir->setAnchorPoint(Vec2(0.5f,0.5f)); nextDir->setPosition(Vec2(visibleSize.width/6*5, visibleSize.height/4*3)); MenuItemImage *lastDir = MenuItemImage::create( "lastNor.png", "lastCli.png", CC_CALLBACK_1(HelloWorld::dirChangeCallback,this)); lastDir->setTag(-1); lastDir->setAnchorPoint(Vec2(0.5f,0.5f)); lastDir->setPosition(Vec2(visibleSize.width/6, visibleSize.height/4*3)); //模式设置 Vector<MenuItem*> modeItemFronts; modeItemFronts.pushBack(MenuItemFont::create("Loop Mode")); modeItemFronts.pushBack(MenuItemFont::create("Drop Mode")); m_modeSelItem = MenuItemToggle::createWithCallback( CC_CALLBACK_1(HelloWorld::toggleCallback,this), modeItemFronts); m_modeSelItem->setAnchorPoint(Vec2(0.5f,0.5f)); m_modeSelItem->setPosition(Vec2(visibleSize.width/2 , visibleSize.height/3)); m_modeSelItem->setAnchorPoint(Vec2(0.5f,0.5f)); m_modeSelItem->setPosition(Vec2(visibleSize.width/2 , visibleSize.height/2)); MenuItemImage *nextMode = MenuItemImage::create( "nextNor.png", "nextCli.png", CC_CALLBACK_1(HelloWorld::modeChangeCallback,this)); nextMode->setTag(1); nextMode->setAnchorPoint(Vec2(0.5f,0.5f)); nextMode->setPosition(Vec2(visibleSize.width/6*5, visibleSize.height/2)); MenuItemImage *lastMode = MenuItemImage::create( "lastNor.png", "lastCli.png", CC_CALLBACK_1(HelloWorld::modeChangeCallback,this)); lastMode->setTag(-1); lastMode->setAnchorPoint(Vec2(0.5f,0.5f)); lastMode->setPosition(Vec2(visibleSize.width/6, visibleSize.height/2)); MenuItemFont* pOK = MenuItemFont::create("OK",CC_CALLBACK_1(HelloWorld::okCallback,this)); pOK->setPosition(Vec2(visibleSize.width/3,visibleSize.height/4)); MenuItemFont* pQuit = MenuItemFont::create("Quit",CC_CALLBACK_1(HelloWorld::quitCallback,this)); pQuit->setPosition(Vec2(visibleSize.width/3*2,visibleSize.height/4)); Menu* pMenu = Menu::create(lastDir,m_dirSelItem,nextDir,lastMode,m_modeSelItem,nextMode,pOK,pQuit,NULL); pMenu->setPosition(Vec2::ZERO); m_setLayer->addChild(pMenu); m_bg = 0; }
void HelloWorld::okCallback(Ref* pSender) { if(!m_bg) { m_runLayer = Layer::create(); this->addChild(m_runLayer); int dirSel = m_dirSelItem->getSelectedIndex(); switch (dirSel) { case 0: m_bg = ScrollingBackground::create(ScrollDirection::SD_RIGHT_TO_LEFT); m_direction = ScrollDirection::SD_RIGHT_TO_LEFT; break; case 1: m_bg = ScrollingBackground::create(ScrollDirection::SD_LEFT_TO_RIGHT); m_direction = ScrollDirection::SD_LEFT_TO_RIGHT; break; case 2: m_bg = ScrollingBackground::create(ScrollDirection::SD_TOP_TO_BOTTOM); m_direction = ScrollDirection::SD_TOP_TO_BOTTOM; break; case 3: m_bg = ScrollingBackground::create(ScrollDirection::SD_BOTTOM_TO_TOP); m_direction = ScrollDirection::SD_BOTTOM_TO_TOP; break; default: break; } m_runLayer->addChild(m_bg,1); for (int i = 1; i < 5; i++) { addBgSprite(i); } /* //当有一个背景精灵彻底离开屏幕的时候的消息,两种方式 if(m_modeSelItem->getSelectedIndex()==0) m_bg->setBgChangeEventListener(this,bgSpriteChangeEvent(HelloWorld::loopBgChangeCallback)); //循环模式 else m_bg->setBgChangeEventListener(this,bgSpriteChangeEvent(HelloWorld::dropBgChangeCallback)); //丢弃模式 */ //当有一个背景精灵彻底离开屏幕的时候的消息,两种方式 if(m_modeSelItem->getSelectedIndex()==0) m_bg->setBgChangeEventListener(CC_CALLBACK_3(HelloWorld::loopBgChangeCallback,this)); //循环模式 else m_bg->setBgChangeEventListener(CC_CALLBACK_3(HelloWorld::dropBgChangeCallback,this)); //丢弃模式 /* //当背景精灵移动时候的消息,两种方式 m_bg->setBgMoveEventListener(this,bgSpriteMoveEvent(HelloWorld::bgMoveCallback)); */ //当背景精灵移动时候的消息,两种方式 m_bg->setBgMoveEventListener(CC_CALLBACK_2(HelloWorld::bgMoveCallback,this)); m_velocity = 300.0f; m_bgSprite = m_bg->getCurBgSprite(); m_bg->beginContinuousScroll(m_velocity); //一个跟随背景移动的物体 m_pItem = Sprite::create("item.png"); m_pItem->setAnchorPoint(Vec2(0.5f,0.5f)); m_pItem->setPosition(Vec2(0.0f,0.0f)); m_runLayer->addChild(m_pItem,2); //pItem锚点一直都是(0.5,0.5),坐标一直是(0.0,0.0),注意看当画面切换的时候他会出现在哪里 //背景精灵精灵的锚点不同,会影响pItem的位置 m_pItem->setPosition(m_bg->getCurBgSprite()->getPosition()); /*下面的是一些菜单的设置,不看也可以*/ Size visibleSize = Director::getInstance()->getVisibleSize(); //返回按钮 MenuItemFont* back = MenuItemFont::create("back",CC_CALLBACK_1(HelloWorld::backCallback,this)); back->setAnchorPoint(Vec2(1.0f,1.0f)); back->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f)); //设置相反速度的按钮 MenuItemFont* reverse = MenuItemFont::create("reverse",CC_CALLBACK_1(HelloWorld::reverseCallback,this)); //暂停 MenuItemToggle* pause = MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::pauseCallback,this), MenuItemFont::create("pause"), MenuItemFont::create("resume"), NULL); pause->setPosition(Vec2(0.0f,50.0f)); //上一个画面 MenuItemImage* lastBg = MenuItemImage::create("lastBgNor.png","lastBgCli.png","",CC_CALLBACK_1(HelloWorld::nextBgCallback,this)); lastBg->setTag(0); lastBg->setAnchorPoint(Vec2(0.0f,0.5f)); lastBg->setPosition(Vec2(-visibleSize.width/2.0f,0.0f)); //下一个画面 MenuItemImage* nextBg = MenuItemImage::create("NextBgNor.png","NextBgCli.png","",CC_CALLBACK_1(HelloWorld::nextBgCallback,this)); nextBg->setTag(1); nextBg->setAnchorPoint(Vec2(1.0f,0.5f)); nextBg->setPosition(Vec2(visibleSize.width/2.0f,0.0f)); //增加背景精灵 MenuItemFont* add = MenuItemFont::create("add background",CC_CALLBACK_1(HelloWorld::addBgSpriteCallback,this)); add->setPosition(Vec2(0.0f,-50.0f)); Menu* pMenu = Menu::create(pause,reverse,add,lastBg,nextBg,back,NULL); pMenu->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f)); m_runLayer->addChild(pMenu,3); //文字提示: Color3B color(255,0,0); m_itemTipsLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f); m_itemTipsLabel->setColor(color); m_itemTipsLabel->setAnchorPoint(Vec2(0.5f,0.5f)); m_itemTipsLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/6.0f)); m_runLayer->addChild(m_itemTipsLabel,3); m_numBgLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f); m_numBgLabel->setColor(color); m_numBgLabel->setAnchorPoint(Vec2(0.5f,0.5f)); m_numBgLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/10.0f)); m_runLayer->addChild(m_numBgLabel,3); m_addTipsLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f); m_addTipsLabel->setColor(color); m_addTipsLabel->setAnchorPoint(Vec2(0.5f,0.5f)); m_addTipsLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/10.0f*9.0f)); m_addTipsLabel->setString(""); m_runLayer->addChild(m_addTipsLabel,3); setTextTips(m_bg->getCurBgSprite()); this->removeChild(m_setLayer); m_setLayer = 0; } }
bool GameScene::init() { if (!Layer::init()) { return false; } gameScene = this;//用于获取游戏场景对象 winSize = Director::getInstance()->getWinSize(); floorCount = 16;//设置地面和金币的个数 forceX = 300; forceY = 30; xSpeed = 5; ySpeed = 15;//决定跳的高度 constXspeed = xSpeed; constYspeed = ySpeed; scaleFix = winSize.width/480; speedFix = 0.01; accelerate = 0.94;//加速度 sizep = Director::getInstance()->getWinSizeInPixels(); scaleFix = sizep.width/480; isJump = false; isPlaySound=GameFatherLayer::allowSound();//是否播放音效 isCollistionWithFloor =false; //创建背景地图 BackMap *sky = BackMap::createMap("back_1.png"); this->addChild(sky,0,0); BackMap *backMap = BackMap::createMap("back_5.png"); this->addChild(backMap,0,1); //创建主角精灵 player = Player::createPlayer(); SpriteBatchNode *batchNode = SpriteBatchNode::create("run.png"); batchNode->addChild(player, 2, 10); playerWidth = player->getContentSize().width; playerHeight = player->getContentSize().height; this->addChild(batchNode); player->setPosition(Point(-20, winSize.height/2 -100)); MoveBy *move = MoveBy::create(1, Point(80, 0)); player->runAction(move); Floor *temp = Floor::createFloor(); floorWidth = temp->getContentSize().width; floorHeight = temp->getContentSize().height; SimpleAudioEngine::getInstance()->preloadBackgroundMusic("background.caf"); SimpleAudioEngine::getInstance()->preloadEffect("eatcoin.caf"); if (isPlaySound) { SimpleAudioEngine::getInstance()->playBackgroundMusic("background.caf"); } //进度条 coinNeededNum = 30; coinUsed = 0; isBarFull = false; progressInterval = 100.0/(float)coinNeededNum; Sprite *barSprite = Sprite::create("powerbar.png"); progress = ProgressTimer::create(barSprite); progress->setPercentage(0.0f); progress->setMidpoint(Point(0, 0)); progress->setBarChangeRate(Point(1, 0)); progress->setScaleY(1.2); progress->setType(kCCProgressTimerTypeBar); progress->setAnchorPoint(Point(0, 0.5)); progress->setPosition(Point(20, winSize.height-18)); Sprite *proFrame = Sprite::create("powerui.png"); proFrame->setAnchorPoint(Point(0, 0.3)); progress->addChild(proFrame); this->addChild(progress); //添加返回主页按钮 MenuItemImage *menuItem = MenuItemImage::create("btnmenu.png", "btnmenu.png",CC_CALLBACK_1(GameScene::menuButton, this)); menuItem->setAnchorPoint(Point(1, 1)); Menu *menu = Menu::create(menuItem, NULL); menu->setPosition(Point(winSize.width-20, winSize.height - 20)); this->addChild(menu); this->initFloorsAndCoins(); this->scheduleUpdate(); return true; }
bool TestFragmentEffect::init() { if ( !TestBase::init() ) { return false; } //都是菜单设置,可以不看 MenuItemFont* MIF0 = MenuItemFont::create("ES_NONE"); MIF0->setColor(Color3B::RED); MIF0->setTag(0); MenuItemFont* MIF1 = MenuItemFont::create("ES_BLACK_AND_WHITE"); MIF1->setColor(Color3B::RED); MIF1->setTag(0); MenuItemFont* MIF2 = MenuItemFont::create("ES_OLD_PHOTOS"); MIF2->setColor(Color3B::RED); MIF2->setTag(0); MenuItemFont* MIF3 = MenuItemFont::create("ES_INVERT"); MIF3->setColor(Color3B::RED); MIF3->setTag(0); MenuItemFont* MIF4 = MenuItemFont::create("ES_BURNS"); MIF4->setColor(Color3B::RED); MIF4->setTag(0); MenuItemFont* MIF5 = MenuItemFont::create("ES_POISONING"); MIF5->setColor(Color3B::RED); MIF5->setTag(0); MenuItemFont* MIF6 = MenuItemFont::create("ES_COLD"); MIF6->setColor(Color3B::RED); MIF6->setTag(0); MenuItemFont* MIF7 = MenuItemFont::create("ES_USER_DEFINED"); MIF7->setColor(Color3B::RED); MIF7->setTag(0); m_sel = MenuItemToggle::createWithCallback(CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this),MIF0,MIF1,MIF2,MIF3,MIF4,MIF5,MIF6,MIF7,NULL); m_sel->setTag(0); m_sel->setAnchorPoint(Vec2(0.5f,1.0f)); m_sel->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, m_visibleOrigin.y + m_visibleSize.height - 7)); MenuItemImage* last = MenuItemImage::create("FragmentEffect/lastNor.png","FragmentEffect/lastCli.png","",CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this)); last->setTag(-1); last->setAnchorPoint(Vec2(0.5f,1.0f)); last->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 10 * 1, m_visibleOrigin.y + m_visibleSize.height)); MenuItemImage* next = MenuItemImage::create("FragmentEffect/nextNor.png","FragmentEffect/nextCli.png","",CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this)); next->setTag(1); next->setAnchorPoint(Vec2(0.5f,1.0f)); next->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 10 * 9, m_visibleOrigin.y + m_visibleSize.height)); MenuItemFont* UDF = MenuItemFont::create("goto ES_USER_DEFINED",CC_CALLBACK_1(TestFragmentEffect::gotoUserDefine,this)); UDF->setColor(Color3B::RED); UDF->setTag(0); UDF->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, m_visibleOrigin.y + m_visibleSize.height - 50.0f)); Menu* pMenu = Menu::create(m_sel,last,next,UDF,NULL); pMenu->setPosition(Vec2::ZERO); this->addChild(pMenu, 1); m_bgSprite = Sprite::create("FragmentEffect/HelloWorld.png"); m_bgSprite->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, m_visibleOrigin.y + m_visibleSize.height / 2)); this->addChild(m_bgSprite, 0); //加载骨骼动画 ArmatureDataManager::getInstance()->addArmatureFileInfo("FragmentEffect/Hero0.png","FragmentEffect/Hero0.plist","FragmentEffect/Hero.ExportJson"); m_armature = Armature::create("Hero"); m_armature->getAnimation()->playWithIndex(0); m_armature->setPosition(Vec2(m_visibleOrigin.x+m_visibleSize.width/2, 0.0f)); m_armature->setAnchorPoint(Vec2(0.5f,0.0f)); this->addChild(m_armature,1); //淡出淡入这样的动作依然可以使用 m_armature->runAction(Sequence::create(FadeOut::create(0.5f),FadeIn::create(0.5f),0)); //就这几句是设置效果的,toggleCallback 和 gotoUserDefine方法里面也有 m_indexSprite = FragmentEffect::getInstance()->addEffectNode(m_bgSprite); //m_indexSprite接收返回的序号,setEffect 和 getEffectSelect 的时候使用 m_indexArmature = FragmentEffect::getInstance()->addEffectNode(m_armature); //m_indexArmature接收返回的序号,setEffect 和 getEffectSelect 的时候使用 float f[] = { 0.5f,0.0f,0.0f,0.0f, 0.0f,0.5f,0.0f,0.0f, 0.0f,0.0f,0.5f,0.0f, 0.0f,0.0f,0.0f,0.5f }; FragmentEffect::getInstance()->addEffectMatrix(Mat4(f));//增加自定义特效矩阵,序号从 ES_USER_DEFINED 开始增加 return true; }
void FriendListScene::buildScene() { _friendDictionary.clear(); _friendList.clear(); _tableView = NULL; _downloadCount = 0; const char* headerString = ""; switch (_selectedFriendCircle) { case ALL_FRIENDS: headerString = "All Friends"; break; case INSTALLED_ONLY: headerString = "Friends Playing Game"; break; case NON_PLAYING_ONLY: headerString = "Friends not Playing Game"; break; case MY_DEVICE_ONLY: #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) headerString = "Friends playing on iOS Device"; #else headerString = "Friends playing on Android Device"; #endif default: break; } //_friendList = CCArray::createWithCapacity(5); //_friendList->retain(); CCLOG("ALL Request count = %lu", _friendList.size()); // Add background layers to the scene. LayerColor *bg = LayerColor::create(Color4B(255, 255, 255, 255), AppDelegate::SCREEN_WIDTH, AppDelegate::SCREEN_HEIGHT); this->addChild(bg); LayerColor *secondBG = LayerColor::create(Color4B(95, 95, 95, 255), AppDelegate::SCREEN_WIDTH - SCALED_VALUE(20.0f), AppDelegate::SCREEN_HEIGHT - SCALED_VALUE(20.0f)); secondBG->setPosition(Point(SCALED_VALUE(10.0f), SCALED_VALUE(10.0f))); this->addChild(secondBG); // Set the table header. LayerColor *header = LayerColor::create(Color4B(66, 66, 66, 255), AppDelegate::SCREEN_WIDTH - SCALED_VALUE(20.0f), SCALED_VALUE(100.0f)); header->setAnchorPoint(Point(0, 0)); header->setPosition(Point(SCALED_VALUE(10.0f), AppDelegate::SCREEN_HEIGHT - SCALED_VALUE(110.0f))); this->addChild(header); // Set the header text. auto headerText = LabelTTF::create(headerString, "Arial", SCALED_VALUE(40.0f)); headerText->setAnchorPoint(Point(0.0f, 0.5f)); header->addChild(headerText); headerText->setPositionX(SCALED_VALUE(28.0f)); headerText->setPositionY(header->getContentSize().height/2); // Add back button go back to previous scene MenuItemImage *backButton = MenuItemImage::create(); backButton->setNormalSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("btn_table_back_nrl")); backButton->setSelectedSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("btn_table_back_prd")); backButton->setCallback(CC_CALLBACK_1(FriendListScene::backButtonPressed, this)); backButton->setAnchorPoint(Point(1.0f, 0.5)); Menu* backMenu = Menu::create(backButton, NULL); header->addChild(backMenu); backMenu->setPositionX(header->getContentSize().width - SCALED_VALUE(20.0f)); backMenu->setPositionY(header->getContentSize().height/2); // Create the table view. float tableHeight = bg->getContentSize().height - secondBG->getPositionY() - (header->getContentSize().height) - SCALED_VALUE(10); _tableView = TableView::create(this, Size(secondBG->getContentSize().width, tableHeight)); _tableView->setAnchorPoint(Point(0, 0.0)); _tableView->setDirection(ScrollView::Direction::VERTICAL); _tableView->setPosition(Point(SCALED_VALUE(10.0f), SCALED_VALUE(10))); _tableView->setDelegate(this); this->addChild(_tableView); }