Cocos2d-x的五个主导类

Cocos2d-x 是以类似拍摄电影的劳动角色来分类的。包含有导演,场景,布景,精灵(演员),动作
CCDirector:  导演,负责场景的切换以及场景的信息。如宽度,高度,旋转场景内容。
CCScene:     场景. 场景包含有布景,精灵,每场戏的不同,要切换场景。游戏中可分为主界面, 游戏, 分数榜,结束界面等。
CCLayer:     布景. 类似是层的概念,也可来源于PS的层的概念。每一层都带有众多精灵等
CCSprite:    精灵。就是演员的,演员就需要加入到层里面去的。有相应的动作。
CCAction:    动作。精灵的动作。
CCDirector 包含 多个 CCScene
CCScene 包含多个 CCLayer
CCLayer 包含多个 CCSprite
CCSprite 包含多个 CCAction
场景切换:
void CMyScene::Show()
{
CCScene* myScene = CCScene::node();
CMyScene* layer = CMyScene::node();
myScene->addChild(layer);
CCScene* preScene = CCDirector::ShareDirector()->getRunningScene();
if (preScene == null)
{
CCDirecotr::ShareDirector()->runWithScene(myScene);
}
else
{
CCDirecotr::ShareDirector()->replaceScene(myScene);
}
}
CCNode OnEnter()调用:
Class MyLayer:public CCLayer
{
};
1. MyLayer* layer = new MyLayer();
此时,会进行会onEnter回调。
2. CCLayer* layer = MyLayer::node();
此时,不会进行onEnter回调。
两者的区别,这个我也不是特别清楚,有清楚的读者可以补充, 好像是第二种方式会进行自动释放内存。
但是,第一种的话,也是可以autorelease();区别除了调用onEnter(),有待继续研究。
LAYER_NODE_FUNC 定义使用
在初始化类时,则会进行调用生成一个结点,可以查看源码,会进行一次init()的操作。
但是需要的是 类::node();使用才行。
init()与onEnter区别:
init()是类加载时,则可以加载某些资源。
onEnter():则为显示时,可以更新某些数据。
CCNode、CCLayer中的OnEnter()方法
自己定义的CCLayer中重写了onEnter()方法以后, Layer中的update和触摸都失效,后台忘记调用了基类的onEnter()方法,通过源码发过, CCNode和CCLayer中的onEnter做了一些初始化工作。如果下次也碰到类似问题,希望能帮上忙!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值