首页 > 其他 > 详细

cocos2dx --- Widget 加载 CCNode

时间:2014-06-08 17:30:53      阅读:432      评论:0      收藏:0      [点我收藏+]

如题。


Widget addChild()   与 addNode()  两个方法。

现在我要加载一个粒子特效进去,下图:

Widget* layout =  dynamic_cast<Widget*>(pRoomWidget[roomId]->getChildByTag(10));

CCParticleSystemQuad* particle = CCParticleSystemQuad::create("particleTexture.plist");
particle->setPosition(CCPointZero);
layout->addChild(particle);


bubuko.com,布布扣

最初,我是直接 使用 layout->addChild(particle); 没有问题可以运行,但Log中有一个断言失败的错误:下图是错误位置

void Widget::addChild(CCNode* child, int zOrder, int tag)
{
    CCAssert(dynamic_cast<Widget*>(child) != NULL, "Widget only supports Widgets as children");
    CCNode::addChild(child, zOrder, tag);
    _widgetChildren->addObject(child);
}


bubuko.com,布布扣

后来换成 layout->addNode(particle);

加载成功,没有断言失败。但在删除掉的时候出错。。。


解决方法有两种:

1、使用addChild()加载,但中间需要间隔一层Widget,如图:

<span style="white-space:pre">	</span>CCParticleSystemQuad* particle = CCParticleSystemQuad::create("particleTexture.plist");
	particle->setPosition(CCPointZero);
	Widget* pNode = Widget::create();
	pNode->setPosition(CCPointZero);
	pNode->addNode(particle);
	layout->addChild(pNode);

bubuko.com,布布扣

删除时使用 bubuko.com,布布扣  

<span style="white-space:pre">	</span>layout->removeAllChildren();


2、使用addNode()加载

<span style="white-space:pre">	</span>CCParticleSystemQuad* particle = CCParticleSystemQuad::create("particleTexture.plist");
	particle->setPosition(CCPointZero);
	layout->addNode(particle);


bubuko.com,布布扣同样,删除时需注意改为bubuko.com,布布扣 

<span style="white-space:pre">	</span> layout->removeAllNodes();



cocos2dx --- Widget 加载 CCNode,布布扣,bubuko.com

cocos2dx --- Widget 加载 CCNode

原文:http://blog.csdn.net/notes_abc/article/details/28636417

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!