【社区活动】7天学会使用Cocos2d-x 3.x实现《捕鱼达人3》的3D效果【答疑笔记已更新】

老师辛苦,我在现在公司,晚上回家才能发详细的打印信息. 我记得报错是在CCNode.cpp中提示重复添加child,或者child == nullptr之类的错误.

根据我的需求,按下Start按钮,调用回调函数时,
如果按下面这样写的话,就会是在现有Start Layer( 在场景create时已经创建过一个了)上再创建一个StartScene Layer,然后进行漩涡特效.
如果老师来写黑色部分,获取我在createScene时创建的StartScene Layer,应该如何写呢?

void Start::StartScene_callback(Ref sender)
{
VortexLayer
layer8 = VortexLayer::create();
layer8->setTargetLayer(
Start::create()); //这里是新建了一个Start层,进行漩涡特效,但场景初始化时创建的Start层依然存在
addChild(layer8);
Director::getInstance()->replaceScene(CCTransitionFade::create(2.f,HelloWorld::createScene()));
}

请教能不能用在2D上面去,比如我有一个Sprite,然后向在上面加上波光,可能么

可以,修改Shader,传入波光纹理即可。

老师辛苦,我现在遇到的问题是这样的,编译暂时没错了,但是执行时会报错,报错信息如下:

Assert failed: child already added. It can’t be added again
Assertion failed!

Program: D:\Mygame1\proj.win32\Debug.win32\Mygame1.exe
File: CCNode.cpp
Line: 965

Expression: child->_parent == nullptr

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts

(Press Retry to debug the application - JIT must be enabled)

我也思考了原因,因为我想获取当前Layer,所以代码写成如下:
void Start::StartScene_callback(Ref sender)
{
SimpleAudioEngine::getInstance()->stopAllEffects();
VortexLayer
layer88 = VortexLayer::create();
//layer88->setTargetLayer(Start::create());
layer88->setTargetLayer(
static_cast<CCLayer*>(Director::getInstance()->getRunningScene()->getChildByTag(88)));
addChild(layer88);
Director::getInstance()->replaceScene(TransitionFade::create(2.f,HelloWorld::createScene(),Color3B::WHITE));
}

原因可能是这个Layer在创建时已经被加为了当前场景的child,
Scene* Start::createScene()
{
auto scene = Scene::create();
auto layer = Start::create();

// add layer as a child to scene

scene->addChild(layer,0,88);
return scene;
}

而在setTargetLayer时又要被设为 CCRenderTexture* m_pTarget;//渲染目标的child,因而产生了错误。

void setTargetLayer(CCLayer* pLayer)
{
m_TargetLayer = pLayer;
if(m_pTarget)
{

m_pTarget->addChild(m_TargetLayer);
}
}

我分析的对吗?

:7:嗯,同一个Node不能被addChild到不同的目标两次。

老师辛苦, 虽然这个问题原因找到了,但是我的需求还没搞定.

如果确实想调用已经创建好的Layer进行漩涡特效的话,该怎么写呢?

给个思路就行,多谢啦 :slight_smile:

mark一下~~~~

第3讲的教程看不到了啊 ,求分享 谢谢

请教下老师。 捕鱼达人3鱼游动的编辑器是怎么做的?有什么思路呢?跪谢啊

— Begin quote from ____

引用第53楼7935201于2014-08-20 10:55发表的 :
希望老师凑空多做些教程,有关特效方面,谢谢 http://www.cocoachina.com/bbs/job.php?action=topost&tid=220053&pid=1033974

— End quote

亲,由于您的学习态度认真!!!恭喜您获得了CC抱枕一个!!请把你的收件地址、收件人、电话私信给我哦!!!

我的运行不起来啊,高手指点啊

源代码里的汉字是乱码啊。。我试了好多编码都不行,怎么搞啊

fbx工具导出c3t 对3dmax版本有要求,我这多次未果

学习一下看看

赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞

只求学习下!!!!!!!!!!

顶一下!赞100个!!!

学习很重要

:867::867::867:

mark 留名 以后学习之