예제 #1
0
// on "init" you need to initialize your instance
bool ControlLayer::init()
{

    // add a menu item with "X" image, which is clicked to quit the program
    // you may modify it.

    // add a "close" icon to exit the progress. it's an autorelease object

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    CCMenuItemImage *pCloseItem = CCMenuItemImage::create("CloseNormal.png", "CloseSelected.png",
                                        this,
                                        menu_selector(ControlLayer::menuCloseCallback) );
    pCloseItem->setPosition( ccp(winSize.width-20, 20) );
    pCloseItem->setScale(0.5);
    pCloseItem->setOpacity(200);

    // create menu, it's an autorelease object
    CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
    pMenu->setPosition( CCPointZero );
    this->addChild(pMenu, 1);

    CCMenuItemImage *upItem = CCMenuItemImage::create("button.png", "selected.png", this, menu_selector(ControlLayer::Moveup));
    CCMenuItemImage *downItem = CCMenuItemImage::create("button.png", "selected.png", this, menu_selector(ControlLayer::Movedown));
    CCMenuItemImage *rightItem = CCMenuItemImage::create("button.png", "selected.png", this, menu_selector(ControlLayer::Moveright));
    CCMenuItemImage *leftItem = CCMenuItemImage::create("button.png", "selected.png", this, menu_selector(ControlLayer::Moveleft));

    int bX; //the x coordination
    int bY; //the y coordination

    int sizeAdjustionRatioConstant = 3;    // for the auto adjusting size
    float bScale = winSize.height / (sizeAdjustionRatioConstant * 100); // (screenHeight / buttonHeight) * ratioConstant
    int transparence = 30;

    bX = (winSize.width / 2);
    bY = (winSize.height / 6) * 5;
    upItem->setPosition( ccp(bX, bY) );
    upItem->setOpacity(transparence);
    upItem->setScale(bScale);


    bX = (winSize.width / 2);
    bY = (winSize.height / 6) * 1;
    downItem->setPosition( ccp(bX, bY) );
    downItem->setOpacity(transparence);
    downItem->setRotation(180);
    downItem->setScale(bScale);

    bX = (winSize.width / 6) * 5;
    bY = (winSize.height / 2);
    rightItem->setPosition( ccp(bX, bY) );
    rightItem->setOpacity(transparence);
    rightItem->setRotation(90);
    rightItem->setScale(bScale);

    bX = (winSize.width / 6) * 1;
    bY = (winSize.height / 2);
    leftItem->setPosition( ccp(bX, bY) );
    leftItem->setOpacity(transparence);
    leftItem->setRotation(270);
    leftItem->setScale(bScale);


    CCMenu* moveItem = CCMenu::create(upItem, downItem, rightItem, leftItem, NULL);
    moveItem->setPosition( CCPointZero );
    this->addChild(moveItem, 0);


    return true;
}
예제 #2
0
void MainMenu::menuPlayCallback(CCObject* pSender){
    //CCDirector *director = CCDirector::sharedDirector();
    //director->replaceScene(MainMenu::scene());
    
    //remove background and apply a new one (not necesary)
    this->removeChild(background1);
    this->removeChild(pMenu);
    
    //add new background
    background2 = CCSprite::create("pixelGrid.png");
    background2->setAnchorPoint(ccp(0,1));
    background2->setPosition(ccp(-50, _screenSize.height+45));
    this->addChild(background2, 1);
    
    
    CCMenuItemImage *farmSceneItem = CCMenuItemImage::create("scenePreview1.png","scenePreview1.png",this,
                                                         menu_selector(MainMenu::farmSceneCallback) );
    //farmSceneItem->setAnchorPoint(ccp(0,0));
    farmSceneItem->setPosition(ccp(_screenSize.width*0.30,_screenSize.height*0.70));
    
    //OPTION BUTTON
    CCMenuItemImage *jungleSceneItem = CCMenuItemImage::create("scenePreview2.png","scenePreview2.png",this,
                                                            menu_selector(MainMenu::jungleSceneCallback) );
    jungleSceneItem->setPosition(ccp(_screenSize.width*0.70,_screenSize.height*0.70));
    //jungleSceneItem->setRotation(90);
    //jungleSceneItem->setAnchorPoint(ccp(0,0));

    CCMenuItemImage *northPoleSceneItem = CCMenuItemImage::create("scenePreview3.png","scenePreview3.png",this,
                                                               menu_selector(MainMenu::northPoleSceneCallback) );
    northPoleSceneItem->setPosition(ccp(_screenSize.width*0.30,_screenSize.height*0.30));
    //northPoleSceneItem->setAnchorPoint(ccp(0,0));

    CCMenuItemImage *citySceneItem = CCMenuItemImage::create("scenePreview4.png","scenePreview4.png",this,
                                                              menu_selector(MainMenu::citySceneCallback) );
    citySceneItem->setPosition(ccp(_screenSize.width*0.70,_screenSize.height*0.30));
    //citySceneItem->setAnchorPoint(ccp(0,0));

    CCMenuItemImage *backButtonItem = CCMenuItemImage::create("arrowButton.png","arrowButton.png",this,
                                                             menu_selector(MainMenu::backButtonCallback) );
    backButtonItem->setPosition(ccp(_screenSize.width*0.50,_screenSize.height*0.10));
    backButtonItem->setRotation(180);
    backButtonItem->setScale(1.5);
    
    //Create menu, it's an autorelease object
    sceneMenu = CCMenu::create(farmSceneItem,jungleSceneItem,northPoleSceneItem,citySceneItem,backButtonItem, NULL);
    sceneMenu->setPosition( CCPointZero );
    this->addChild(sceneMenu, 2);
    sceneMenu->retain();
    
    
    /*
    //Add select button
    playButton = CCSprite::createWithSpriteFrameName("selectButton.png");
    playButton->setPosition(ccp(_screenSize.width*0.90,_screenSize.height*0.10));
    this->addChild(playButton,2);
    

    //Add next button
    nextButton = CCSprite::createWithSpriteFrameName("arrowButton.png");
    nextButton->setPosition(ccp(_screenSize.width*0.90,_screenSize.height*0.50));
    this->addChild(nextButton,2);
    
    
    //Add previous button
    previousButton = CCSprite::createWithSpriteFrameName("arrowButton.png");
    previousButton->setPosition(ccp(_screenSize.width*0.10,_screenSize.height*0.50));
    previousButton->setRotation(180);
    this->addChild(previousButton,2);
    
    //Add back button
    backButton = CCSprite::createWithSpriteFrameName("selectButton.png");
    backButton->setPosition(ccp(_screenSize.width*0.10,_screenSize.height*0.10));
    backButton->setRotation(180);
    this->addChild(backButton,2);
    
    
//THIS WILL BE A SPRITESHEET TO MINIMIZE IMAGE GRABS IN THE FUTURE
    //add scene preview
    CCSprite * sprite;

    scenePreview = CCArray::createWithCapacity(numberOfScenes); //there are only 4 scenes
    scenePreview->retain();
    sprite = CCSprite::create("menuScenePreview.png");
    sprite->setPosition(ccp(_screenSize.width*.50, _screenSize.height*.50));
    //this->addChild(scenePreview, 3);
scenePreview
    */
}