大佬教程收集整理的这篇文章主要介绍了【Cocos2dx】菜单,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Cocos2dx的菜单在《【Cocos2dx】用当前游戏状态作为暂停背景、纯文字纯图片按钮与不间断的重复动作序列》(点击打开链接)中开发按钮的时候,已经使用过了。只是当时使用菜单的时候,只在菜单中添加了一个菜单子项,看起来仅仅是一个按钮的效果,无法体会到Cocos2dx的菜单是什么使用的。
其实Cocos2dx的菜单使用依次简单。
比如如下例子:
这是在手游中非常常见的菜单。为了测试各个按钮的响应,还在这个菜单上方定义一个文本,点击不同的菜单子项则会将此文本改变成相应的函数。
使用CCMenuItemLabel或者CCMenuItemImage加上CCMenu去实现即可。
首先在HelloWorldScene.h做如下的声明:
#include "cocos2d.h" USING_NS_Cc;//一旦在头文件声明用到了CC,就必须有这句 class HelloWorld:public cocos2d::CCLayer { public: virtual bool init(); static cocos2d::CCScene* scene(); CREATE_FUNC(HelloWorld); private: CCLabelTTF *label;//点击响应文字 //菜单子项文字 CCLabelTTF *label1; CCLabelTTF *label2; CCLabelTTF *label3; //各个按钮的响应事件 void button1_onclick(CCObject* pSender); void button2_onclick(CCObject* pSender); void button3_onclick(CCObject* pSender); };
#include "HelloWorldScene.h" CCScene* HelloWorld::scene() { CCScene *scene = CCScene::create(); HelloWorld *layer = HelloWorld::create(); scene->addChild(layer); return scene; } bool HelloWorld::init() { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();//获取尺寸 //各个菜单子项 label1=CCLabelTTF::create("button1","Arial",24); CCMenuItemLabel *menu_item_label1=CCMenuItemLabel::create(label1,this,menu_SELEctor(HelloWorld::button1_onclick)); label2=CCLabelTTF::create("button2",24); CCMenuItemLabel *menu_item_label2=CCMenuItemLabel::create(label2,menu_SELEctor(HelloWorld::button2_onclick)); label3=CCLabelTTF::create("button3",24); CCMenuItemLabel *menu_item_label3=CCMenuItemLabel::create(label3,menu_SELEctor(HelloWorld::button3_onclick)); int heightItem=menu_item_label1->getContentSize().height;//求菜单子项的高度 //设置所有菜单子项的坐标(相对于CCMenu的相对坐标) menu_item_label1->setPosition(ccp(0,0)); menu_item_label2->setPosition(ccp(0,-heightItem)); menu_item_label3->setPosition(ccp(0,-heightItem*2)); CCMenu* menu1=CCMenu::create(menu_item_label1,menu_item_label2,menu_item_label3,null);//将各个菜单子项加到菜单上面去 menu1->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));//菜单的定位 this->addChild(menu1); label=CCLabelTTF::create("0",24);//设定相应文本的位置 label->setPosition(ccp(visibleSize.width/2,visibleSize.height/2+heightItem));//放在菜单的上方 this->addChild(label); return true; } //各个菜单子项的回调函数 void HelloWorld::button1_onclick(CCObject* pSender){ label->setString("1"); } void HelloWorld::button2_onclick(CCObject* pSender){ label->setString("2"); } void HelloWorld::button3_onclick(CCObject* pSender){ label->setString("3"); }
以上是大佬教程为你收集整理的【Cocos2dx】菜单全部内容,希望文章能够帮你解决【Cocos2dx】菜单所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。