如何在 cocos2dx v3.7 中将一些精灵放入 Valuemap
How can I put some sprite into Valuemap in cocos2dx v3.7
我发现Valuemap是方法。该值不支持指针。
但是我写那些代码没有报错:
Sprite* spriteBg = .....;
Valuemap dic;
dic["abc"] = spriteBg;
获取时出错:
for (auto unit:dic){
Sprite* spritebg = dynamic_cast<Sprite*>(unit.second);
}
它告诉我错误 "cocos2d::Value is not a pointer"
或这个问题的另一面:
我可以将 Ref 对象设置为 cocos2dx 值吗?
cocos2d::Value 类型以及扩展值映射类型旨在保存从 JSON 反序列化的值。因此它们不能包含 Ref 类型。
据我所知,唯一内置的 cocos 存储 cocos2d::Ref 派生对象的类型是 cocos2d::Vector - 它将 retain/release 正确加入成员,并支持迭代。
啊。 @zszen 指出我错过了 cocos2d::Map(来自 cocos/base/CCMap.h
),它将 retain/release 值类型。
cocos2d::Map<std::string,Node*> nodeMap;
我发现Valuemap是方法。该值不支持指针。 但是我写那些代码没有报错:
Sprite* spriteBg = .....;
Valuemap dic;
dic["abc"] = spriteBg;
获取时出错:
for (auto unit:dic){
Sprite* spritebg = dynamic_cast<Sprite*>(unit.second);
}
它告诉我错误 "cocos2d::Value is not a pointer"
或这个问题的另一面: 我可以将 Ref 对象设置为 cocos2dx 值吗?
cocos2d::Value 类型以及扩展值映射类型旨在保存从 JSON 反序列化的值。因此它们不能包含 Ref 类型。
据我所知,唯一内置的 cocos 存储 cocos2d::Ref 派生对象的类型是 cocos2d::Vector - 它将 retain/release 正确加入成员,并支持迭代。
啊。 @zszen 指出我错过了 cocos2d::Map(来自 cocos/base/CCMap.h
),它将 retain/release 值类型。
cocos2d::Map<std::string,Node*> nodeMap;