转自:http://blog.csdn.net/xiaoxiangp/article/details/7684578
研究了几天cocos2d-x,发现资料都比较零散。对于没有一定功底的想开发游戏的同学来说入门还是比较困难的...
于是我想分享下我研究出来的一些对于我这种刚接触的人来说能够理解的一些设计吧...
先上代码~我相信大家找到这个函数应该不难吧...程序的入口函数什么的我就不介绍了。来点直观的..
[cpp] view plaincopy
- bool HelloWorld::init()
- {
- bool bRet = false; 首先对于这个判断变量,开始我也不知道是干嘛的,指导我理解了这个do...while循环之后才明白
- do
- {
- CC_BREAK_IF(! CCLayer::init());
- 这个是定义了一个尺寸变量,获得了窗口的尺寸然后保存到s中。
- CCSize s = CCDirector::sharedDirector()->getWinSize();
- 这一句好长,其实意思就是创建了一个菜单按钮,当按下的时候调用某个函数
- CCMenuItemImage *pCloseItem = CCMenuItemImage::itemFromNormalImage(
- "play1.png",没按下的图片
- "play2.png",按下时的图片
- this,
- menu_selector(HelloWorld::menuCloseCallback));点下的时候调用这个函数
- CC_BREAK_IF(! pCloseItem); 这个是一个宏,跟踪进去发现就是一个if判断。意思就是如果这个变量不正常,就break!
- pCloseItem->setPosition(ccp(s.width/2, s.height/2));设置按钮的位置,开始定义的s起作用了.我发现图片的绘制都是以中心点定位的
- CCMenu* pMenu = CCMenu::menuWithItems(pCloseItem, NULL);创建菜单,然后加入刚刚定义的按钮进去,如果有多个按钮的话在
- NULL参数的前面继续添加就行
- pMenu->setPosition(CCPointZero);
- CC_BREAK_IF(! pMenu);
- this->addChild(pMenu, 1);添加到舞台~这样就能看到按钮菜单啦!
- bRet = true; 这个地方设置为真了!!然后就是while(0)一个始终不成立的循环呐!
- } while (0);
- return bRet;
- }
初始化函数,使用do...while()循环的特性。如果有异常就直接跳出循环,然后bret这个变量就是false,就会相应的处理。当整个循环完成了,才会变成true。有种goto语句的感觉。哈哈...
[cpp] view plaincopy
- void HelloWorld::menuCloseCallback(CCObject* pSender)
- {
- // "close" menu item clicked
- CCDirector::sharedDirector()->end();
- }
这个是在类中自己写的回调函数。就是点击按钮时就会调用的函数啦...这里就直接调用end().程序关闭~哦也!
真希望能有人和我一起学习这个引擎...虽然加了不少群,但是都是爱理不理的态度,很是失望。所以希望对游戏开发有梦想的同学能一起分享自己通俗的经验..谢谢
by...XX