void  removeFromParentAndCleanup (bool cleanup)//删除父节点中的当前节点并清除动作及回调函数 void ActionCallFuncND::onEnter() { ActionsDemo::onEnter(); centerSprites(); CCFiniteTimeAction* action = CCSequence::create(CCMoveBy::create(,)), CCCallFuncND::create(this, callfu…
一个cocos2dx项目从2.2.6 升级至3.16 的过程,由于没有直升工具,类库升级也变动很大,有一部分需要手工完工升级.此记录供参考 1. 没有采用项目直升方式,先新建一个3.16的项目,然后把c++文件逐步转过来,不要项目直升,编译的错误会直接让你头昏,而害怕止步,首先转公共类库部分. 2.3.16的项目的字符集是 Unicode 字符集,改成多字节符集,如果你里面有大量的char操作,就建议改,不要改项目里面的函数,这里一步到位. 3.  keyBackClicked 方法,改成onk…
作为跟类,Node有很多的重要的函数 local childNode = cc.Node:create() --创建节点 node:addChildNode(childNode,0,123) --创建子节点 ,第二个参数为Z轴绘制程序,第三个参数为标签 local node = node:getChildByTag() --通过标签查找子节点 node:removeChildByTag() --通过标签移除子节点,并停止该节点的所有动作 node:removeChild(childNode,tr…
1. 3.4final控制台创建项目后,安卓编译会失败,必须手动把cocos/平台/andorid/java/src目录里的文件复制到安卓项目的src文件夹即可 2. 安卓的文件目录与win的略有不同,读取文件时最好把文件目录输完整,以防出错 3. 物理世界不要放在inti()里初始化.因为init()是在layer创建后立刻自动执行的初始化程序,而m_World是在layer的init()执行完后再初始化的,如果在init里使用m_World,会发生异常. 4. 使用不同版本的COCOS之前需…
Sprite * sp= Sprite::create("Icon.png"); sp->setPosition(Vec2(, )); addChild(sp,,); // Action动作 // MoveBy 创建一个移动的动作 参数1:移动到目标坐标所需的时间 参数2:目标坐标 支持reverse 可以获取其反向动作 // MoveTo 一样的 ActionInterval * moveBy = MoveBy::create(,Vec2(, )); ActionInterva…
cocos2dx常见的46中+22中动作详解 分类: iOS2013-10-16 00:44 1429人阅读 评论(0) 收藏 举报 bool HelloWorld::init(){    //////////////////////////////    // 1. super init first    if ( !CCLayer::init() )    {        return false;    } CCSprite * sp= CCSprite::create("Icon.pn…
上一章,我们分析Node类的源码,在Node类里面耦合了一个 Scheduler 类的对象,这章我们就来剖析Cocos2d-x的调度器 Scheduler 类的源码,从源码中去了解它的实现与应用方法. 直入正题,我们打开CCScheduler.h文件看下里面都藏了些什么. 打开了CCScheduler.h 文件,还好,这个文件没有ccnode.h那么大有上午行,不然真的吐血了, 仅仅不到500行代码.这个文件里面一共有五个类的定义,老规矩,从加载的头文件开始阅读. #include <funct…
上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种场合,不是做为参数就是做为返回值,那么这一章节我们就去看看这个Node类到底在Cocos2d-x里处于一个什么样的地位. 直接进入主题,我们打开CCNode.h文件.我去,这个文件有1500行,这么长怎么看啊,放松一下整体看过一遍,松了一口气,还好,还没那么糟,文件虽然大,注释占了有90%的篇幅,代…
schedule(schedule_selector(HelloWorld::step), 1.0f); void HelloWorld::step(float dt) { CCLog("dt = %f", dt); //this->unschedule(schedule_selector(HelloWorld::step)); //不加这句,每1.0s调用一次 加上这句话,1.0s后调用且只执行一次 } schedule(schedule_selector(HelloWorld…
本将主要介绍下CCNode这个类,CCNode是所有节点的基类,其中包括我们常用的CCScene(场景).CCLayer(图层).CCSprite(精灵)等,它是一个不能够可视化显示的抽象类,只是用来定义所有节点的公共属性和方法的.本讲纯粹是理论. 首先来看看CCNode的继承结构图,只列举了常用的类 节点的处理 1.创建一个新的节点 CCNode *node = [CCNode node]; 2.添加子节点 // 先创建子节点 CCNode *childNode = [CCNode node]…