2014-05-14 5 views
0

Comment puis-je référencer une position d'élément de menu à un autre élément de menu dans le même menu?référence d'une position d'élément de menu à un autre élément de menu dans le même menu

Par exemple, j'ai l'objet menu et 2 éléments de menu. Je veux le deuxième élément de menu, se réfère à la position de la première, comme ceci:

menu_item_2->setPosition(Point(menu_item1.width/2, visibleSize.height/3)); 

Mais cela ne fonctionne pas réellement.

Ceci est mon code maintenant:

Size visibleSize = Director::getInstance()->getVisibleSize(); 



    auto menu_item_1 = MenuItemFont::create("Play", CC_CALLBACK_1(MenuScene::Play, this)); 
    auto menu_item_2 = MenuItemFont::create("abc", CC_CALLBACK_1(MenuScene::Play, this)); 
    mainMenu = Menu::create(menu_item_1,menu_item_2, NULL); 
    mainMenu -> setPosition(visibleSize.width/4, visibleSize.height/4); 
    menu_item_1->setPosition(Point(visibleSize.width/2, visibleSize.height/2)); 
    menu_item_2->setPosition(Point(visibleSize.width/2, visibleSize.height/3)); 
    this->addChild(mainMenu); 


    CCLOG("Play"); 
    CCLOG("Play %f", screen.width/2); 
    CCLOG("Play %f", screen.height/2); 
    CCLOG("Play %f", visibleSize.width/2); 
    CCLOG("Play %f", visibleSize.height/2); 
+0

Si vous essayez d'aligner des éléments de menu, vous pouvez utiliser la méthode alignItemsHorizontallyWithPadding dans la classe –

Répondre

1

Vous pouvez vous référer à une propriété largeur d'un autre menu élément en accédant sa boîte englobante

menu_item_2->setPosition(Point(menu_item_1->getBoundingBox().size.width/2.0f, m_visibleSize.height/3)); 

Essentiellement une MenuItemFont est une classe de nœud et vous peut utiliser tous les getters présents dans une classe de nœud:

Point pos = menu_item_1->getPosition(); 
float xpos = menu_item_1->getPositionX(); 
float ypos = menu_item_1->getPositionY(); 

Mais attention: tous les Ces coordonnées sont relatives à l'objet du menu principal.

+0

et la position x/y? –

+0

@FilipeFerminiano: J'ai modifié mon post. –

Questions connexes