问个cocos2dx 3.x Map和Vector的问题

xupark 2015-03-29 09:33:01
我建了个精灵数组 cocos2d::Vector< cocos2d::Sprite* > spArr;
然后用一个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>!

请问这个应该怎么改呢?
...全文
426 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨木头 2015-03-30
  • 打赏
  • 举报
回复
cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > 这种语法不支持(我也觉得这里是个坑)。 Map和Vector里只能放【继承了Ref】的对象,而Map和Vector本身是没有继承Ref的,所以Map不能放Vector。 如果要实现这种数据结构,要是有ValueVector代替Vector。 更多的,官网应该有几篇教程,你可以搜索看看. 或者看官方文档,那里也有。
xupark 2015-03-30
  • 打赏
  • 举报
回复
有点晕了,之前用2.2那套完全没问题- - ValueMap 和 ValueVevtor貌似都是只能放 Value()包装的常量吧 问题是 ValueMap 里得放进一个数组- -
xupark 2015-03-30
  • 打赏
  • 举报
回复
暂时用 std::map< int, Vector< Sprite* > > 代替 cocos2d::Map< int, cocos2d::Vector< cocos2d::Sprite* > > 了。 但是不知道这个std::map会不会触发引擎自带的内存释放机制。 ValueVector 我也有想过,但是这个貌似不能放精灵吧。 不是只能放一些常量之类的吗?

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧