cocos2dx创建菜单的基本方法

最简单的文字菜单

// MenuItemFont::create创建四个菜单项,第一个参数是菜单项名称,第二参数是点击该项触发的回调函数
auto item1 = MenuItemFont::create("No.1", CC_CALLBACK_1(HelloWorld::gofind, this));
auto item2 = MenuItemFont::create("No.2", CC_CALLBACK_1(HelloWorld::gofind, this));
auto item3 = MenuItemFont::create("No.3", CC_CALLBACK_1(HelloWorld::gofind, this));
auto item4 = MenuItemFont::create("No.4", CC_CALLBACK_1(HelloWorld::gofind, this));

// Menu创建一个菜单目录把菜单项都添加进去,以null结束
auto menu = Menu::create(item1, item2, item3, item4, NULL);
menu->alignItemsVertically();
this->addChild(menu);

最简单的图形菜单

// 把创建菜单和菜单项放在一步执行,p1.png是菜单项原始的图片p2.png是被点击时的图片,第三个参数是lamda表达式形式的回调函数
auto menu = Menu::create(MenuItemImage::create("p1.png", "p2.png", [](Ref*pSender) {log("ImageMenu"); }), NULL);
addChild(menu);

简单的精灵菜单

// 把创建菜单和菜单项放在一步执行,前两个参数是两个精灵,第三个参数是lamda表达式形式的回调函数
auto sp1 = Sprite::create("CloseSelected.png");
auto sp2 = Sprite::create("CloseNormal.png");
auto menu = Menu::create(MenuItemSprite::create(sp1, sp2, [](Ref*) { log("sprite");  }), NULL);
	addChild(menu);

触发器菜单

	// 先创建两个菜单项
	auto item1 = MenuItemImage::create("CloseSelected.png", "CloseNormal.png");
	auto item2 = MenuItemImage::create("CloseNormal.png", "CloseSelected.png");

	// 创建一个触发器菜单,这样就把两个菜单项绑定,点击第一个菜单项就会变成第二个菜单项,在点击又会变成第一个菜单项,第三个参数是lamda表达式形式的回调函数
	auto toggle = MenuItemToggle::createWithCallback([](Ref*) {}, item1, item2, nullptr);
	// 在加入到menu菜单目录
	auto menu = Menu::create(toggle, nullptr);
	addChild(menu);

总结:不管创建任何菜单,都需要创建菜单项,不同的菜单只是创建菜单项的方式不同,最后加入到Menu类的菜单目录这个过程是相同的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值