day01 cocos2d-x框架模式,层级关系,添加精灵
1.Cocos2d-x框架模式
CCDirector->CCScene->CCLayer->CCSprite, 一级一级衔接.
2. applicationDidFinishLaunching是作为游戏程序的主要起始口
3.我们编程主要是编写层,也就是CCLayer这一层.CCLayer的代码模版为
#include “cocos2d.h”
USING_NS_CC;
Class myLayer:public CCLayer
{
CREATE_FUNC(myLayer);
Static *CCScene *scene();
Bool init();
}
CREATE_FUNC(myLayer) 该函数于预编译期形成,无法调试跟综代码,主要完成myLayer对象的创建及初始化,形成具有用户特定的Layer ,最后进行内存拖管(函数为autorelease()).
Static *CCScene *scene() 创建场景层,返回该场景给导演.中间该场景需要addchild(myLayer)
Bool init() 自定义层的初始化操作,核心代码将置于此处.
4. bool init() 今天学习的核心区域
精灵:置至层(Layer)的下级,由CCSprite创建,代码格式为 CCSprite *spr = CCSrpite::create(“---”);
锚点:默认精灵层的锚点在中心,而myLayer的锚点在左下角,因为myLayer默认放弃锚点,放弃锚点即是把锚点清0,即把锚点置于(0, 0)角,在左下角,锚点设置的函数为setAnchorPoint
setPostion:实质上是将锚点置于ccp(x, y)处.
添加图片的方法1
CCTexture2D *textur2d = CCTextureCache::sharedTextureCache()->addImage("anchor2.png");
CCSprite *buit = CCSprite::createWithTexture(Text2d1);
添加图片的方法2
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("help.plist");//加载全局的plist文件,保存于CCSpriteFrameCache缓存
CCSprite *help=CCSprite::createWithSpriteFrameName("SelectorScreen_Help2.png");//加载缓存中的一张图片,此方法原理为,加载plist文件到CCSpriteFrameCache::sharedSpriteFrameCache()缓存中(单实例类),然后再从该缓存中读取数据…
Help->setPostion(ccp(x, y))设置图片位置
即创建图片可以由CCTextrue2d *(CCSprite::createwithTextrue),
也可以用CCSpriteFrameCache(CCSprite::createwithSpriteFrameName)
CCJumpBy *jump = CCJumpBy::create(7, ccp(0, 0), 70, 9);
help->runAction(CCRepeatForever::create(jump));
CCJumpBy继承于CCAction,实质上是CCAction类型,表示跳跃
5.myLayer::draw()函数
经调试测试是在导演加载场景完成后,窗口显示之后才调用,似乎是通过消息循环进行调用,目前还没有进一步的了解,draw重写了父函数
6.zorder
每个精灵都有zorder属于,用于调整图层的上下关系,默认情况是最先加入的在最上层.
7.CCLayerColor
带颜色的Layer,初始化时CCLayerColor::initWithColor(ccc4(255,255,255,255));
浙公网安备 33010602011771号