有点晚了,眼睛开始痒痒了,赶紧记录点东西
刚请教了sw同学,跟听D也扯了会,苦命的孩子,今晚他们游戏发新版,前端必须加班,骨头好是羡慕。。。
前几个笔记的例子都是zai一个Scene.cpp里完成的,想新加一个,结果老报找不到类。
解决方法:
把新加的类从 prog.win32中拷贝到classes中,然后项目里倒入现有项,ok!
新加了一个菜单页,打算放几个menu
图片资源可以从cocos2dx的demo里搜
CCSize vSize=CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin=CCDirector::sharedDirector()->getVisibleOrigin();
CCLabelTTF *label=CCLabelTTF::create("LazyGame","Arial",33);
label->setPosition(ccp(vSize.width/2,vSize.height-label->getContentSize().height));
this->addChild(label);
CCMenuItemImage* item1 = CCMenuItemImage::create("btn-play-normal.png", "btn-play-selected.png", this, menu_selector(Welcome::menuCallback));
CCMenuItemImage* item2 = CCMenuItemImage::create("btn-highscores-normal.png", "btn-highscores-selected.png", this, menu_selector(Welcome::menuCallbackHighScores) );
CCMenuItemImage* item3 = CCMenuItemImage::create("btn-about-normal.png", "btn-about-selected.png", this, menu_selector(Welcome::menuCallbackAbout) );
item1->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*3));
item2->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*5));
item3->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*7));
item1->setScaleX( 2.0f );
item2->setScaleX( 2.0f );
item3->setScaleX( 2.0f );
CCMenu* pMenu = CCMenu::create(item1,item2,item3, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu);
以上是加入label,MenuItemImage图片按钮的例子,setScaleX:设置缩放。
然后在h文件里声明一个void menuCallback(CCObject* pSender);按钮事件处理类,里面写跳转逻辑:
void Welcome::menuCallback(CCObject* pSender)
{
CCDirector* pDirector = CCDirector::sharedDirector();
CCScene *pScene = HelloWorld::scene();
pDirector->replaceScene(pScene);
}
ok,多个Scene就是这么切换的。上一张霰弹图:自己创造幽灵,然后被自己的霰弹弄死!骨头是有多无聊啊!
要睡了。。。