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); }
bool PauseLayer::init(GameScene* gameScene) { if (!Layer::init()) return false; PauseLayer::gameScene = gameScene; //background backGround = Sprite::create("Pause/bk.png"); backGround->setAnchorPoint(Vec2(0, 0)); backGround->setPosition(0, 0); backGround->setOpacity(0); this->addChild(backGround); //pause background pauseBk = Sprite::create("Pause/pause_bk.png"); pauseBk->setPosition(640/2, 960+278/2); this->addChild(pauseBk); //menu Menu* menu = Menu::create(); menu->setAnchorPoint(Vec2(0, 0)); menu->setPosition(0, 0); pauseBk->addChild(menu); //home button MenuItemImage* homeButton = MenuItemImage::create( "Pause/home1.png", "Pause/home2.png", "", CC_CALLBACK_1(PauseLayer::buttonEvent, this)); homeButton->setPosition(515 / 2 - 81 * 2 + 30, 85); //position homeButton->setTag(BUTTON_HOME); menu->addChild(homeButton); //play button MenuItemImage* playButton = MenuItemImage::create( "Pause/play1.png", "Pause/play2.png", "", CC_CALLBACK_1(PauseLayer::buttonEvent, this)); playButton->setPosition(515 / 2, 85); //position playButton->setTag(BUTTON_PLAY); menu->addChild(playButton); //replay button MenuItemImage* replayButton = MenuItemImage::create( "Pause/replay1.png", "Pause/replay2.png", "", CC_CALLBACK_1(PauseLayer::buttonEvent, this)); replayButton->setPosition(515 / 2 + 81 * 2 - 30, 85); //position replayButton->setTag(BUTTON_REPLAY); menu->addChild(replayButton); this->setVisible(false); return true; }
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) ; }
//TODO 屏蔽事件穿透 void BattleScene::createBottomBar() { LayerColor *bottom = LayerColor::create(Color4B(0, 0, 100, 100)); bottom->setContentSize(Size(WINSIZE.width, 120)); bottom->setPosition(Point(0, 0)); addChild(bottom); int totalCount = 11; int index = 0; Vector<MenuItem *> items; auto soldierInCamp = BattleData::getInstance()->getAttackSoldierInCamp(); map<int, vector<DSoldier *>>::iterator it; for(it=soldierInCamp.begin(); it!=soldierInCamp.end(); it++) { MenuItemImage *item = MenuItemImage::create("ui/616.0.png", "ui/617.0.png", "ui/618.0.png", CC_CALLBACK_1(BattleScene::selectArmy, this)); item->setTag(it->first); items.pushBack(item); index++; //head Size size = item->getContentSize(); char img[20]; sprintf(img, "ui/%d.png", it->first / 100); auto head = Sprite::create(img); head->setAnchorPoint(Point(0.5, 0.5)); head->setPosition(size.width/2, size.height/2); item->addChild(head); char text[20]; sprintf(text, "X %d", it->second.size()); TTFConfig config("fonts/tahoma.ttf",16); auto count = Label::createWithTTF(config, text, TextHAlignment::LEFT); count->setPosition(size.width/2, size.height - count->getContentSize().height); item->addChild(count); //初始化为第一个兵种 if (m_selectedSoldierType <= 0) { m_selectedSoldierType = it->first; } } for (int i = index; i < totalCount; i++) { MenuItemImage *item = MenuItemImage::create("ui/616.0.png", "ui/617.0.png", "ui/618.0.png", CC_CALLBACK_1(BattleScene::selectArmy, this)); item->setEnabled(false); items.pushBack(item); } Size bottomSize = bottom->getContentSize(); Sprite *spItem = Sprite::create("ui/618.0.png"); Size itemSize = spItem->getContentSize(); float padding = (bottomSize.width - itemSize.width * totalCount) / (totalCount + 1); UIRadioButton *radio = UIRadioButton::createWithArray(items); radio->alignItemsHorizontallyWithPadding(padding); radio->setPosition(Point(bottomSize.width / 2, bottomSize.height / 2)); radio->setSelectedIndex(0); bottom->addChild(radio); }
bool PopupLayer::addButton(const char *normalImage, const char *selectedImage, const char *title, int tag) { //Size winSize = CCDirector::getInstance()->getWinSize(); Point pCenter = ccp(winSize.width / 2, winSize.height / 2); // 创建图片菜单按钮 MenuItemImage* menuImage = MenuItemImage::create(normalImage, selectedImage, this, menu_selector(PopupLayer::buttonCallback)); menuImage->setTag(tag); menuImage->setPosition(pCenter); // 添加文字说明并设置位置 Size imenu = menuImage->getContentSize(); LabelTTF* ttf = LabelTTF::create(title, "", 20); ttf->setColor(ccc3(0, 0, 0)); ttf->setPosition(ccp(imenu.width / 2, imenu.height / 2)); menuImage->addChild(ttf); getMenuButton()->addChild(menuImage); return true; }
bool PopLayer::addButton(const char* normalImage, const char* selectedImage, const char* title, int tag /*= 0*/) { Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 pCenter(visibleSize.width / 2, visibleSize.height / 2); // 创建图片菜单按钮 MenuItemImage* menuImage = MenuItemImage::create(normalImage, selectedImage, CC_CALLBACK_1(PopLayer::buttonCallback, this)); menuImage->setTag(tag); //menuImage->setPosition(pCenter); // 添加文字说明并设置位置 if(title != NULL) { Size imenu = menuImage->getContentSize(); LabelTTF* ttf = LabelTTF::create(title, "", 20); ttf->setColor(Color3B(0, 0, 0)); ttf->setPosition(Vec2(imenu.width / 2, imenu.height / 2)); menuImage->addChild(ttf); } getMenuButton()->addChild(menuImage); 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 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; }
// on "init" you need to initialize your instance bool ReadyScene::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } Singleton<WeaponDB>::getInstance(); SpriteFrameCache::getInstance()->addSpriteFramesWithFile("clotharmor.plist"); SpriteFrameCache::getInstance()->addSpriteFramesWithFile("thunder.plist"); SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ogre.plist"); SpriteFrameCache::getInstance()->addSpriteFramesWithFile("pikachu.plist"); SpriteFrameCache::getInstance()->addSpriteFramesWithFile("thunder_effect.plist"); Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); s = nullptr; auto backgroundSprite = Sprite::create("start_background.png"); backgroundSprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y)); backgroundSprite->setScale(3); this->addChild(backgroundSprite); auto tmap = TMXTiledMap::create("StartMap.tmx"); gamemap = new GameMap(tmap); player = new Player(this, gamemap); player->getSpriteObject()->setScale(1.5f); player->getSprite()->setPosition(Point(visibleSize.width * 7 / 24, visibleSize.height /2)); s = new Weapon(1); player->setWeapon(s); MenuItemImage* PlayMenu = MenuItemImage::create("play_button1.png", "play_button2.png", CC_CALLBACK_1(ReadyScene::onMenu, this)); PlayMenu->setScale(2.5f); Menu* menu = Menu::create(PlayMenu, NULL); menu->setPosition(visibleSize.width * 0.3f, visibleSize.height * 0.3f); this->addChild(menu, 1); MenuItemImage* LeftButton = MenuItemImage::create("left_button1.png", "left_button2.png", CC_CALLBACK_1(ReadyScene::onLeftButton, this)); LeftButton->setScale(2.5f); Menu* left_bt = Menu::create(LeftButton, NULL); left_bt->setPosition(Point(visibleSize.width / 6, visibleSize.height / 2)); this->addChild(left_bt, 1); MenuItemImage* RightButton = MenuItemImage::create("right_button1.png", "right_button2.png", CC_CALLBACK_1(ReadyScene::onRightButton, this)); RightButton->setScale(2.5f); Menu* right_bt = Menu::create(RightButton, NULL); right_bt->setPosition(Point(visibleSize.width * 3 / 7, visibleSize.height / 2)); this->addChild(right_bt, 1); auto weapon_sprite = Sprite::create("weapon_font.png"); weapon_sprite->setScale(2.0f); weapon_sprite->setPosition(Point(visibleSize.width * 0.55f, visibleSize.height * 0.75f)); this->addChild(weapon_sprite); auto scrollView = ScrollView::create(Size(Singleton<WeaponDB>::getInstance()->getWeaponDBSize() * 48, 48)); scrollView->setDirection(ScrollView::Direction::HORIZONTAL); scrollView->setContentOffset(Vec2(0, 0)); scrollView->setContentOffsetInDuration(Vec2(0, 0), 10.f); scrollView->setPosition(Point(visibleSize.width * 0.5f, visibleSize.height * 0.6f)); this->addChild(scrollView); MenuItemImage *test; Menu *menutest; for (int i = 1; i <= Singleton<WeaponDB>::getInstance()->getWeaponDBSize(); i++) { std::string str = StringUtils::format("%s_menu.png", Singleton<WeaponDB>::getInstance()->getWeaponData(i).path.c_str()); test = MenuItemImage::create(str, str, CC_CALLBACK_1(ReadyScene::test2, this)); test->setScale(2.5f); test->setTag(i); menutest = ScrollMenu::create(test, NULL); menutest->setPosition(Point((48 * i), 20)); scrollView->addChild(menutest); } this->schedule(schedule_selector(ReadyScene::gameLogic), 0.2); return true; }