void ConfigMenu::makeMenu(){ CCMenuItemFont::setFontSize(50); CCMenuItemFont::setFontName("Arial"); //CCMenuItemToggle* music = CCMenuItemToggle::createWithTarget(this, menu_selector(ConfigMenu::musicMenuCallback), //CCMenuItemFont::create("Music OFF"), //CCMenuItemFont::create("Music ON"), NULL); CCMenuItemToggle* music = CCMenuItemToggle::createWithTarget(this, menu_selector(ConfigMenu::musicMenuCallback), CCMenuItemLabel::create(CCLabelBMFont::create("Music OFF", "arial-unicode-26.fnt", 300)), CCMenuItemLabel::create(CCLabelBMFont::create("Music ON", "arial-unicode-26.fnt", 300)), NULL); CCLabelBMFont* txtShare = CCLabelBMFont::create("Share", "arial-unicode-26.fnt", 300); //CCMenuItemFont* share = CCMenuItemFont::create("Share", this, menu_selector(ConfigMenu::shareMenuCallback)); //CCLabelTTF* d = CCLabelTTF::create("Share", "Arial", 30); CCMenuItemLabel* share = CCMenuItemLabel::create(txtShare, this, menu_selector(ConfigMenu::shareMenuCallback)); music->setPosition(ccp(0,-60)); share->setPosition(ccp(0, music->getContentSize().height+music->getPositionY()+20)); share->setScale(2); music->setScale(2); CCMenu *menu = CCMenu::create(music, share, NULL); //menu->setPosition(ccp(400,0)); menu->setOpacity(kCCMenuHandlerPriority); this->addChild(menu); if(!CCUserDefault::sharedUserDefault()->getBoolForKey(CONFIG_KEY_HAS_MUSIC)){ music->setSelectedIndex(1); }else{ music->setSelectedIndex(0); } }
bool BossSnakePlay::init() { if (!SnakesPlay::init()) return false; CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); // init the map VirtualMap::init(); BarrierFactory barrierfactory; m_barrier = barrierfactory.createBarrier(this,BarrierFactory::BARRIER_TYPE_BOSS); // create snakes SnakeFactory snakefactory; Snake *snake = snakefactory.createSimpleSnake(this,SnakeFactory::SNAKEIMG_TYPE_WHITE,1); m_snakes.push_back(snake); snake = snakefactory.createBossSnake(this,SnakeFactory::SNAKEIMG_TYPE_BOSS,2); m_snakes.push_back(snake); // generate food FoodFactory *foodfactory = new MultiFoodFactory(); m_food = foodfactory->createFood(this); m_food->generate(); // create control m_controls.push_back(new HumanControl()); m_controls.push_back(m_food); // game control button m_stopFlag = false; CCMenuItemImage *StopGameItem = CCMenuItemImage::create("buttons/pause.png", "buttons/pause.png"); CCMenuItemImage *StartGameItem = CCMenuItemImage::create("buttons/play.png", "buttons/play.png"); CCMenuItemToggle *StopOrStartItem = CCMenuItemToggle::createWithTarget(this,menu_selector(SnakesPlay::StopGameCallback), StopGameItem,StartGameItem, NULL); StopOrStartItem->setEnabled(true); StopOrStartItem->setScale(0.5); CCMenu* itemToggleMenu = CCMenu::create(StopOrStartItem, NULL); itemToggleMenu->setPosition(ccp(visibleSize.width-20, 20)); this->addChild(itemToggleMenu, 1); this->schedule(schedule_selector(BossSnakePlay::scheUpdate),m_updateTime); return true; }
KDbool Ch7_GridPathfinding::init ( KDvoid ) { // Superclass initialization and message if ( !Recipe::init ( ) ) { return KD_FALSE; } this->showMessage ( "Tap and hold to draw walls.\nPress 'Find Path' to run the simulation." ); //Initial variables m_tGridSize = ccp ( 25, 15 ); m_fNodeSpace = 16.0f; m_tTouchedNode = ccp ( 0, 0 ); m_tStartCoord = ccp ( 2, 2 ); m_tEndCoord = ccp ( m_tGridSize.x - 3, m_tGridSize.y - 3 ); m_bTouchedNodeIsNew = KD_FALSE; m_pFoundPath = new CCArray ( ); m_bAddMode = KD_TRUE; // Seperate grid node m_pGridNode = CCNode::create ( ); m_pGridNode->setPosition ( ccp ( 35, 15 ) ); this->addChild ( m_pGridNode, 3 ); // Create 2D array (grid) m_pGrid = new CCArray ( (KDint) m_tGridSize.x ); for ( KDint x = 0; x < (KDint) m_tGridSize.x; x++ ) { m_pGrid->addObject ( CCArray::createWithCapacity ( (KDint) (KDint) m_tGridSize.y ) ); } // Create AStar nodes and place them in the grid for ( KDint x = 0; x < (KDint) m_tGridSize.x; x++ ) { for ( KDint y = 0; y < (KDint) m_tGridSize.y; y++ ) { // Add a node AStarNode* pNode = AStarNode::create ( ); pNode->setPosition ( ccp ( x * m_fNodeSpace + m_fNodeSpace / 2, y * m_fNodeSpace + m_fNodeSpace / 2 ) ); ( (CCArray*) m_pGrid->objectAtIndex ( x ) )->addObject ( pNode ); } } // Add neighbor nodes for ( KDint x = 0; x < (KDint) m_tGridSize.x; x++ ) { for ( KDint y = 0; y < (KDint) m_tGridSize.y; y++ ) { // Add a node AStarNode* pNode = (AStarNode*) ( (CCArray*) m_pGrid->objectAtIndex ( x ) )->objectAtIndex ( y ); // Add self as neighbor to neighboring nodes this->addNeighbor ( pNode, x - 1, y - 1 ); // Top-Left this->addNeighbor ( pNode, x - 1, y ); // Left this->addNeighbor ( pNode, x - 1, y + 1 ); // Bottom-Left this->addNeighbor ( pNode, x , y - 1 ); // Top this->addNeighbor ( pNode, x , y + 1 ); // Bottom this->addNeighbor ( pNode, x + 1, y - 1 ); // Top-Right this->addNeighbor ( pNode, x + 1, y ); // Right this->addNeighbor ( pNode, x + 1, y + 1 ); // Bottom-Right } } // Add visual represenation of nodes this->addGridArt ( ); // Menu items CCMenuItemFont::setFontSize ( 30 ); CCMenuItemFont* pFindPathItem = CCMenuItemFont::create ( "Find Path", this, menu_selector ( Ch7_GridPathfinding::findPath ) ); pFindPathItem->setScale ( 0.65f ); CCMenuItemToggle* pSwitchModeItem = CCMenuItemToggle::createWithTarget ( this, menu_selector ( Ch7_GridPathfinding::switchMode ), CCMenuItemFont::create ( "Switch Mode: Remove Wall" ), CCMenuItemFont::create ( "Switch Mode: Add Wall" ), KD_NULL ); pSwitchModeItem->setScale ( 0.65f ); CCMenu* pMenu = CCMenu::create ( pFindPathItem, pSwitchModeItem, KD_NULL ); pMenu->alignItemsVertically ( 0 ); pMenu->setPosition ( ccp ( 350, 290 ) ); this->addChild ( pMenu, Z_HUD ); // Add draw layer this->addDrawLayer ( ); // Schedule step method this->schedule ( schedule_selector ( Ch7_GridPathfinding::step ) ); return KD_TRUE; }