如何在数组Cocos2d-x C ++中存储点

时间:2016-10-25 13:55:56

标签: c++ arrays cocos2d-x

我正在使用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存储在一个我可以迭代并获取数据的数组中。感谢您的任何指导。问候。

1 个答案:

答案 0 :(得分:2)

你不能像这样存储它。 Vector是cocos2d-x,它需要cocos2d-x对象,它们扩展了Ref类。相反,您可以使用std中的vector(小写),如下所示:

std::vector<Point> _pointArray;
_pointArray.push_back(point1);