Cocos2d-x 第一天

Cocos2d-x 是以Cocos2d-iphone 移植版本,是以我们中国为主导的。
首先先来说明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中的updat e和触摸都失效,后台忘 记调用 了基 的onEnter( ) ,通过 源码发过 ,  CCNode和CCLayer中的onEnter做了一些初始化工作。 如果 类似问题,希望能帮上忙!

经测试,的确是如此的。继承了onEnter以后,按键是无法使用的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值