`
836811384
  • 浏览: 549526 次
文章分类
社区版块
存档分类
最新评论

Cocos2dx系列笔记4:怎样新加一个Scene类?

 
阅读更多

有点晚了,眼睛开始痒痒了,赶紧记录点东西

刚请教了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就是这么切换的。上一张霰弹图:自己创造幽灵,然后被自己的霰弹弄死!骨头是有多无聊啊!


要睡了。。。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics