如何在cocos2dx v3.7中将一些精灵放入Valuemap

时间:2015-09-07 08:53:23

标签: c++ c++11 cocos2d-x cocos2d-x-3.0

我发现Valuemap是方法。该值不支持指针。 但我写的那些代码没有错误:

Sprite* spriteBg = .....;
Valuemap dic;
dic["abc"] = spriteBg;

我得到它时出错:

for (auto unit:dic){
  Sprite* spritebg = dynamic_cast<Sprite*>(unit.second);
}

它显示错误“cocos2d :: Value不是指针”

或此问题的其他方面: 我可以将Ref对象设置为cocos2dx值吗?

1 个答案:

答案 0 :(得分:1)

cocos2d :: Value类型和扩展名Valuemap类型用于保存从JSON反序列化的值。因此,它们不能包含Ref类型。

我知道存储cocos2d :: Ref派生对象的唯一内置cocos类型是cocos2d :: Vector - 它将正确保留/释放成员,并支持迭代。

阿。 @zszen指出我错过了cocos2d :: Map(来自cocos/base/CCMap.h),它将保留/释放Value类型。

cocos2d::Map<std::string,Node*> nodeMap;