cocos2dx的真实入口是AppDelegate::applicationDidFinishLaunching()函数,主要完成对CCDirector以及Scene及layer、sprite的加载。
其中,通过layer来加载sprite,scene来加载layer,director来加载scene,其中通过继承CClayer来完成创建layer、scene、sprite的。
MyLayer.h文件代码:
#include "cocos2d.h"
USING_NS_CC;
class MyLayer : public CCLayer
{
public:
CREATE_FUNC(MyLayer);
//static MyLayer * create();
static CCScene * ccscene();
bool init();
};
MyLayout.cpp代码为
#include "MyLayer.h"
//MyLayer * MyLayer::create()
//{
// MyLayer *pRet = new MyLayer();
// if (pRet&&pRet->init())
// {
// pRet->autorelease();
// }
// else
// {
// delete pRet;
// pRet = NULL;
// }
// return pRet;
//}
bool MyLayer::init()
{
if (!CCLayer::init())
{
return false;
}
CCSize winsize = CCDirector::sharedDirector()->getWinSize();
CCSprite * sprite = CCSprite::create("teemo2.png");
sprite->setPosition(ccp(winsize.width/2,winsize.height/2));
addChild(sprite);
return true;
}
CCScene * MyLayer::ccscene()
{
CCScene* ccs = CCScene::create();
MyLayer* layer = MyLayer::create();
ccs->addChild(layer);
return ccs;
}
在MyLayer类中。通过scene方法来获得CCScene,并且将本已经Layer加载了精灵的Layer添加进去。精灵在创建的时候需要指定安放的点。
CREATE_FUNC(MyLayer);是一个宏,与本类的已经注释了的静态方法一模一样,主要完成对本类的创建以及初始化、内存托管。init()方法主要进行对父类初始化然后加载精灵。(怀念java的spuer)。
在cocos中,一般父类的析构函数与反析构函数都不会使用。
锚点
个人理解为旋转的中心点,是可以设置的点,一般精灵的锚点是(0.5,0.5)处,layer的锚点一般默认忽视,即为(0,0)处,当然这些都是可以设置的啦,通过设置来完成对点的具体展示,这个还是比较好理解。
没有什么东西是不能通过一个精灵展示的,如果有,那就两个
万物皆精灵,精灵大法好
精灵的三种创建方法如图所示,明天再进行对这几种进行先抄代码再理解消化。
jpg图片不能简单改个png的后缀就使用!!!!