b2c信息网

您现在的位置是:首页 > 热点问题 > 正文

热点问题

cocos2dx源码(cocos2dx源码完全解析)

hacker2022-06-12 09:00:28热点问题78
本文目录一览:1、cocos2dx有哪些bug

本文目录一览:

cocos2dx 有哪些bug

先说bug触发的条件:

先为一个节点设置了剪裁,但是在动画中,需要更新这个剪裁的形状,然后再以这个新的形状设置剪裁。

bug代码:

clip_front_-setStencil(pfront);

运行的时候,我收到了一个来自mac版本的运行抱怨,他抱怨以上代码总是崩。但是我的是以windows非库源码形式编译的,所以没有发生这个问题。

收到反馈后,我把代码拷贝到带cocos2dx源码运行的项目中,果不其然。。。。(在此奉劝大家,千万不要图省事,一定要以库源码的形式编译,因为这个库很多bug。。而你也有能力修正它)

我们来看setStencil的内部实现:

void ClippingNode::setStencil(Node *stencil)

{

CC_SAFE_RETAIN(stencil);

CC_SAFE_RELEASE(_stencil );

_stencil = stencil;

}

咋一看没什么问题,问题出来以前我也不觉得这里有啥问题。

现在我对任何不加入资源管理的离散节点的release表示怀疑,因为我不懂它内部运行的机制。

事实上当内部stencil正在使用的时候,简单的析构它一定会导致问题。assert还算好的,运行时崩溃才是让人崩溃的。因为你不能准确定位到问题发生的地方。

于是代码修正如下:

void ClippingNode::setStencil(Node *stencil)

{

CC_SAFE_RETAIN(stencil);

Node* ptemp = _stencil;

if (ptemp)

{

ptemp-stopAllActions();

ptemp-onExit();

}

_stencil = stencil;

CC_SAFE_RELEASE(ptemp);

}

node析构中的 !running assert消失了。问题解决。运行没有发现内存泄露

cocos2dx 怎么导入一个源代码

您好,跟新建项目的时候差不多,

只不过是点击右键后,

选择添加现有项目,

而不是新建项目。

或者是少了个proj.win32文件夹,添加项目时,进入到这个文件夹,选择.vcxproj格式的文件就行。

cocos2dx 2.x源码还有用么

不建议再使用 cocos2d-x 2.x ,主要是 cocos2d-x 3.x 的 API 更合理,更规范,也使用了 C++ 11的诸多特性。

cocos2d-x 的教材比较混乱,建议不要看。

触控官网的文档都不一定靠谱,最靠谱还是看源码。

cocos2dx源码怎么导入vs2010 csdn

新建一个cocos2d工程目录,将recources也就是素材库复制至工程目录,在VC里删掉新建项目Classes分类下的所有文件,然后右击Classes分类,添加现有项,找到下载的源码classes,导入所有。

发表评论

评论列表

  • 语酌清引(2022-06-12 16:12:38)回复取消回复

    现有项,找到下载的源码classes,导入所有。

  • 夙世艳鬼(2022-06-12 17:28:29)回复取消回复

    而不是新建项目。或者是少了个proj.win32文件夹,添加项目时,进入到这个文件夹,选择.vcxproj格式的文件就行。cocos2dx 2.x源码还有用么不建议再使用 cocos2d-x