然后用一个cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > areaArr建了一个区域用来存放精灵数组(每个区域都有区域号和对应的精灵数组)。
for ( int tempY = 0; tempY <= 2; tempY++ )
{
for ( int tempX = 0; tempX <= 2; tempX++ )
{
...........
............
spArr.pushBack( sp );
}
areaArr.insert( tempY * 3 + tempX, spArr );
}
但是编译的时候发现报错了 error C2338: Invalid Type for cocos2d::Map<K, V>!
请问这个应该怎么改呢?
3 个解决方案
#1
cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > 这种语法不支持(我也觉得这里是个坑)。
Map和Vector里只能放【继承了Ref】的对象,而Map和Vector本身是没有继承Ref的,所以Map不能放Vector。
如果要实现这种数据结构,要是有ValueVector代替Vector。
更多的,官网应该有几篇教程,你可以搜索看看.
或者看官方文档,那里也有。
Map和Vector里只能放【继承了Ref】的对象,而Map和Vector本身是没有继承Ref的,所以Map不能放Vector。
如果要实现这种数据结构,要是有ValueVector代替Vector。
更多的,官网应该有几篇教程,你可以搜索看看.
或者看官方文档,那里也有。
#2
暂时用 std::map< int, Vector< Sprite* > > 代替 cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > 了。
但是不知道这个std::map会不会触发引擎自带的内存释放机制。
ValueVector 我也有想过,但是这个貌似不能放精灵吧。 不是只能放一些常量之类的吗?
但是不知道这个std::map会不会触发引擎自带的内存释放机制。
ValueVector 我也有想过,但是这个貌似不能放精灵吧。 不是只能放一些常量之类的吗?
#3
有点晕了,之前用2.2那套完全没问题- -
ValueMap 和 ValueVevtor貌似都是只能放 Value()包装的常量吧
问题是 ValueMap 里得放进一个数组- -
ValueMap 和 ValueVevtor貌似都是只能放 Value()包装的常量吧
问题是 ValueMap 里得放进一个数组- -
#1
cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > 这种语法不支持(我也觉得这里是个坑)。
Map和Vector里只能放【继承了Ref】的对象,而Map和Vector本身是没有继承Ref的,所以Map不能放Vector。
如果要实现这种数据结构,要是有ValueVector代替Vector。
更多的,官网应该有几篇教程,你可以搜索看看.
或者看官方文档,那里也有。
Map和Vector里只能放【继承了Ref】的对象,而Map和Vector本身是没有继承Ref的,所以Map不能放Vector。
如果要实现这种数据结构,要是有ValueVector代替Vector。
更多的,官网应该有几篇教程,你可以搜索看看.
或者看官方文档,那里也有。
#2
暂时用 std::map< int, Vector< Sprite* > > 代替 cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > 了。
但是不知道这个std::map会不会触发引擎自带的内存释放机制。
ValueVector 我也有想过,但是这个貌似不能放精灵吧。 不是只能放一些常量之类的吗?
但是不知道这个std::map会不会触发引擎自带的内存释放机制。
ValueVector 我也有想过,但是这个貌似不能放精灵吧。 不是只能放一些常量之类的吗?
#3
有点晕了,之前用2.2那套完全没问题- -
ValueMap 和 ValueVevtor貌似都是只能放 Value()包装的常量吧
问题是 ValueMap 里得放进一个数组- -
ValueMap 和 ValueVevtor貌似都是只能放 Value()包装的常量吧
问题是 ValueMap 里得放进一个数组- -