coco2d-x 学习笔记2

小满(bill man)的专栏地址http://blog.csdn.net/bill_man

想学coco2d的  他的博客  很好 很强大

 

转载来的

和学习任何新技术是一样的,我们首先从helloworld开始,cocos2d-x工程中自带helloworld项目,我们就可以通过这个项目来看出cocos2d-x的基本结构

项目结构

可以看到win32,linux,bada,ios等文件夹与平台相关的,与开发逻辑相关的即是Classes和Resource文件夹,Classes文件夹放置代码,Resource放置资源(图片,声音,图片配置文件等)

 

下面是 我 学习hello  world  觉得重要的 名词吧

main类就算是win32平台的一个入口类启动程序

AppDelegate是应用真正的入口,在这里有平台的适配参数,找到导演类,启动我们的场景

HelloWorldScene场景类,构建方法主要是建层等,关键的方法是init,主要是构建场景中的各种元素

导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,导演制定规则让游戏内的场景,布景,和人物角色有序的运行

摄像机(CCCamera),每个节点都需要使用摄像机,当节点发生缩放,旋转,和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机重新渲染。

场景(CCScene)在游戏里,场景就是关卡,关卡有人物和背景构成

布景(CCLayer)从概念上说,布景就是场景里的背景,其实就是层次的概念,这种概念在kjava时代就有,就是手动的把游戏中的场景分层(也有靠地图编辑器实现这一功能的)

人物(CCSprite),这就很明显了,当然包括主角和敌人,和npc,以我个人的理解,也包括游戏中的动态大图素及机关等

动作(CCAction),就是人物(CCSprite)拥有的动作

 

内存自动回收

Cocos2dx提供了一种类似java的内存回收机制,,在java中定义的对象实例,不用担心他什么时候被释放,因为java虚拟机会在变量不再使用时自动释放内存,而在C++中,不再使用这个变量时,我们需要手动释放(使用delete),不然我们的内存就会溢出,而在使用cocos2d-x时我们无需再关心这个问题,就是在新创建实例时,加入autorelease,如图所示:

这样就可以自动释放不再需要的内存了.

 

 

动作(CCAction

cocos2d-x引擎中,动作定义了在节点上进行通用的操作,他不依赖于节点,但是运行时需要指定节点作为目标,动作可以实现很多动画效果

动作分为瞬时动作(基类CCActionInstanse)和延时动作(基类CCActionInterval),实现动作包括几个步骤:

1.创建目标节点(一般是精灵)

m_grossini = CCSprite::spriteWithFile(s_pPathGrossini);

2.定义动作

CCActionInterval* actionTo = CCMoveTo::actionWithDuration(2, CCPointMake(s.width-40, s.height-40));

3.动作执行

m_grossini->runAction( CCSequence::actions(actionBy, actionByBack, NULL));

 

 

消息机制


cocos2d-x也采用了消息机制,如上图中代码所示,在完成动作后调用相应函数

 

coco2d-2.0以上的版本 去掉了 很多函数  比如CCMutableArray 

原来是 CCMutableArray<CCSpriteFrame *> *animFrames = new CCMutableArray<CCSpriteFrame*>(4);

现在都实现不了了

可以用 CCArray  * aanimFrames = CCArray::array();   //CCArray  不能用new  来创建

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值