我创建了一个CCLayer
实例,然后我想创建相同的层。
CCLayer
cocos2-x中是否可以复制实例?
AFAIK,现在 cocos2dx 中没有这种可能性。因此,只需将图层的创建放置到将返回结果图层的方法中并调用此方法两次。
在 cocos2d-x 中复制/深度复制对象不是一个选项。
最好的方法是为您的层创建一个自定义类,然后调用该::create()
方法两次以拥有同一层的两个实例,共享所有初始配置。
在MyLayer.h
:
USING_NS_CC;
class MyLayer : public CCLayer {
public:
CREATE_FUNC(MyLayer);
virtual bool init();
};
在MyLayer.cpp
:
bool MyLayer::init() {
if (!CCLayer::init())
return false;
// Insert here all custom initialization logic
return true;
}
然后你可以很容易地做到:
MyLayer *layer1 = MyLayer::create();
MyLayer *layer2 = MyLayer::create();
并且两个层将共享相同的初始方面/配置/其他。