对于一款棋牌类游戏,在一个场景中我们经常会响应不同的按钮来更新场景中间部位的内容(其他部分不需要做出改变),那我是不是每次都先清除之前的中间部位加载的Layer,然后生成一个新的Layer,把他加载到中间部位,我想问下是不是一般都这么做 的,还是有更为科学的方法?
中间放个sprite 然后initWithXXXXX系列方法
要么整个图层删了重新创建图层,要么直接对图层里需要改变的东西进行修改
如果不同图层的差异较大,还是直接删了重新创建方便
额。。。先感谢版主的热心回答,但是sprite不是只能加载图片的么,现在我中间部分是有另外的操作的,包含其他按钮的,并且有不同的布局的。。这怎么做呢
谁告诉你sprite只能加载图片的

=.=小白,不太懂,能请大神给段小小的事例代码么
sprite可以作为的的一个父节点 按钮什么的直接addchild在这个sprite上面 不就好了
按钮加到sprite里面的话不能响应回调函数了吧。
你试了么?


我现在是这么做的
touchGroup = TouchGroup::create();
Layout* layout = dynamic_cast<Layout*>(GUIReader::shareReader()->widgetFromJsonFile(“RDC_MaJiangProject_4.json”));
if(layout){
touchGroup->addWidget(layout);
CCSize layoutSize = layout->getContentSize();
layout->setScaleX(visibleSize.width/layoutSize.width);
layout->setScaleY(visibleSize.height/layoutSize.height);
Layout* centerPanel = dynamic_cast<Layout*>(touchGroup->getWidgetByName("center_panel_guild"));
if(centerPanel){
GDAreaLayer* center = GDAreaLayer::create();
center->setPosition(0,0);
center->setMySize(centerPanel->getSize());
centerPanel->addNode(center);
centerPanel->setVisible(true);
// CCLOG("dsadsadsa");
}
GDAreaLayer 是自己写的继承CCLayer的类,里面加载了另一个json布局文件,
centerPanel 是当前布局文件中我预留的一个层容器,我打算用它来装载GDAreaLayer
请问这样做有没有问题
为什么不可以?
额,我想知道这样做的话会不会造成影响效率什么的,因为这样做,每次切换都要频繁的创建和消除,感觉上会有点那个啥额,,,,,
我把menuitem直接放在普通的layer试过,是不行的。
menuitem本身并不响应touch事件,而是通过menulayer来传递的,所以要么自己实现,要么就得放在menulayer里面。
不过现在3.0好像所有node都可以自己注册touch事件了。
你说的没错
menuitem加到menulayer上,menulayer加在sprite上,这样的按钮是可以响应的。
另外,所有node都可以注册响应touch,最早的版本就可以的