我正在使用Cocos2d-x,我想知道如何在一个数组中存储点。
myClass.h
Vector<Point*> _pointArray; //Using the cocos class Vector Im getting really confused about how to declare this Points container.
myClass.cpp
//Some trigger in the implementation will populate the array
int count;
int i;
float coinPosX;
float coinPosY;
Point point1 = Vec2(0.8f, 0.2f);
_pointArray.pushBack(point1);
Point point2 = Vec2(15.0f, 10.0f);
_pointArray.pushBack(point2);
count = (int)_pointArray.size();
for (i = 0; i < count; i++){
auto coin = Sprite::create("coin.png");
coin->setPosition(Vec2( _pointArray.at(i).x, _pointArray.at(i).y));
this->addChild(coin);
}
问题是pushBack方法的错误:
错误:没有重载函数的实例''cocos2d :: Vector :: pushback [with T = cocos2d :: Sprite *] 匹配参数列表
参数类型是(cocos2d :: Point) 对象类型是cocos2d :: Vector;
论证是不对的,所以我迷路了,这有什么不对,并且有什么方法可以将Point存储在一个我可以迭代并获取数据的数组中。感谢您的任何指导。问候。
答案 0 :(得分:2)
你不能像这样存储它。 Vector是cocos2d-x,它需要cocos2d-x对象,它们扩展了Ref类。相反,您可以使用std中的vector(小写),如下所示:
std::vector<Point> _pointArray;
_pointArray.push_back(point1);