创建一个菜单,创建不同的菜单项,创建菜单的时候create函数列举不同的菜单项,因此创建菜单的工作一般都是放在创建玩菜单项后面的。
1)创建菜单:
CCMenu *menu = CCMenu::create(item1,NULL);
注意,后面一定要加一个NULL,代表菜单项添加完毕,可以开始创建菜单;
2)创建菜单项:
有五个我们有5中菜单项可以选择。它们分别是:CCMenuItemFont(字体菜单项)、CCMenuItemImage(图片菜单项)、CCMenuItemLabel(文本菜单项)、CCMenuItemSprite(精灵菜单项)、CCMenuItemToggle(开关菜单项)。主要讲CCMenuItemFont(字体菜单项)
方法1:
CCMenuItemFont::create(选项文字)
方法2:
CCMenuItemFont::create(选项文字,触发目标对象,触发目标函数);
方法1的例子:
CCMenuItemFont* item1 = CCMenuItemFont::create("GAME BEGIN");
CCMenu *menu = CCMenu::create(item1,NULL);
this->addChild(menu);
方法2的例子:
init函数体定义中代码:
CCMenuItemFont* item1 = CCMenuItemFont::create("GAME BEGIN", this, menu_selector(MyScene::onMenuItem));//menu_selector是宏定义
CCMenu *menu = CCMenu::create(item1,NULL);
this->addChild(menu);
.h文件中对onMenuItem函数的声明void onMenuItem(Ref*);
对onMenuItem的定义
void MyScene::onMenuItem(Ref*)
{
CCLOG("OK....");
}
这样点击GAME BEGIN的时候会在output框中输出OK,,,,
通过方法2切换场景:
首先添加类Scene1,创建新的场景,然后
init函数体定义中代码:
CCMenuItemFont* item1 = CCMenuItemFont::create("GAME BEGIN", this, menu_selector(MyScene::onMenuItem));
CCMenu *menu = CCMenu::create(item1,NULL);
this->addChild(menu);
.h文件中对onMenuItem函数的声明void onMenuItem(Ref*);对onMenuItem的定义
void MyScene::onMenuItem(Ref*)
{
CCLOG("OK....");
CCScene *scene = Scene1::createScene();
CCDirector::sharedDirector()->replaceScene(scene);
}
replaceScene可以用popScene或者pushScene代替
下面介绍一下场景切换的特效:切换场景都是重新创建场景的类
CCTransitionFade *scene2=CCTransitionFade::create(2,scene);//切换场景