我发现Valuemap是方法。该值不支持指针。 但我写的那些代码没有错误:
Sprite* spriteBg = .....;
Valuemap dic;
dic["abc"] = spriteBg;
我得到它时出错:
for (auto unit:dic){
Sprite* spritebg = dynamic_cast<Sprite*>(unit.second);
}
它显示错误“cocos2d :: Value不是指针”
或此问题的其他方面: 我可以将Ref对象设置为cocos2dx值吗?
答案 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;