gpt4 book ai didi

c++ - 将菜单项位置引用到同一菜单中的另一个菜单项

转载 作者:行者123 更新时间:2023-11-28 06:52:36 25 4
gpt4 key购买 nike

如何将一个菜单项位置引用到同一菜单中的另一个菜单项?

例如,我有菜单对象和 2 个菜单项。我想要第二个菜单项,指的是第一个的位置,像这样:

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

但这实际上行不通。

现在这是我的代码:

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);

最佳答案

您可以通过访问他的边界框来引用另一个项目菜单的宽度属性

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

本质上,MenuItemFont 是一个 Node 类,然后您可以使用节点类中存在的所有 getter:

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

但要小心:所有这些坐标都是相对于主菜单对象的。

关于c++ - 将菜单项位置引用到同一菜单中的另一个菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23645752/

25 4 0