cocos2d-x HellloWorld程序解析
我是个刚开始学coocs2d-x的新手,对于很多还是不懂啊!有错误的希望大家包涵啊! 方便那些刚刚学习cocos2d-x的新手!
HelloWorld场景包涵两个文件:HelloWorld.cpp 和 HelloWorld.h(头文件)这个就不多说了
打开HelloWorld.cpp 文件
有三个函数:
init();
Scene();
menuCloseCallBack(CCObject *pSender);(cocos2d-x命名都是按照见名之意的原则,所以函数基本上根据英语的意思就了解一二)
Scene()函数是创建一个新的场景。
menuCloseCallBack(CCObject *pSender);是执行“关闭”函数
主要是在init()函数里面了。
刚开始的HelloWorld运行后,出现的窗口是包括一个显示“HelloWorld”字符串,背景图片,关闭操作,下面介绍这个函数里面如何实现的这三个操作
1、显示HelloWorld
//这是一个添加标签的语句,调用CClabelTTF里面的labelWirhString函数,三个函数分别是,所显示的字符串,字体型号,字体大小(字符串改成中文会出现乱码)
CCLabelTTF* pLabel = CCLabelTTF::labelWithString("HelloWorld", "Arial", 40);
CCSize size = CCDirector::sharedDirector()->getWinSize();//初始化,没有这句话调用下面的ccp函数会报错
pLabel->setPosition( ccp(size.width / 2, size.height - 50) );//其实可以直接调用CCPointMake(x,y);
this->addChild(pLabel, 1);//将这个标签添加进去,这是必须的,否则不会显示
2、背景图片
//创建一个CCSprite对象,调用spriteWithFile函数(“图片名称”)(默认的是当前地址,如果在别处,需要绝对路径)
CCSprite* pSprite = CCSprite::spriteWithFile("HelloWorld.png");
//设置 这个精灵在窗口的位置
pSprite->setPosition( ccp(size.width/2, size.height/2) );
// 将这个精灵加入层中(第一个参数是所加入的对象,第二参数是所加入的顺序即在第几层,背景一般在最底层0)
this->addChild(pSprite, 0);
3、关闭操作
//这是一个建立菜单语句,以图片的形式加入itemFromNormalImage, 后面一共有四个参数,第一个是在屏幕上显示的状态,第二个是你点击后的状态,第三个是对当前对象操作,第四个相当于连接一样,点击这个菜单后所调用的函数,是menuCloseCallback,即关闭
CCMenuItemImage *pNextItem = CCMenuItemImage::itemFromNormalImage( "next.png", "next1.png", this,menu_selector(HelloWorld::menuCloseCallback) );
//设置位置
pNextItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 400, 20) );
//创建一个CCMenu对象,让这个对象能以菜单的形式显示在屏幕上,否则所定义的菜单是不能显示的。
CCMenu* pMenu1 = CCMenu::menuWithItems(pNextItem, NULL); //如果有多个菜单,可以在括号里加上创建的各个对象(1,2,3,4...,null);
pMenu1->setPosition( CCPointZero ); //设置锚点
this->addChild(pMenu1, 1);//一样,添加至层(layer)
这样,HelloWorld的显示就只这样的。
由于很多代码我自己修改过,所以有些不一样,但是意思都是一样的。
谢谢哦。有错误希望指出来哦!