2016-10-25 4 views
0

Я использую Cocos2d-x, и я хотел бы знать, как хранить точки в массиве.Как хранить точки в массиве Cocos2d-x C++

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 :: теряемое [с T = cocos2d :: Sprite *] спичках список аргументов

типы аргументов (cocos2d :: Point) Тип объекта cocos2d :: Vector;

Аргумент неправильный, поэтому я теряюсь, Что не так с этим, и как правильно хранить точки в массиве, который я могу выполнять итерировать и получать свои данные. Спасибо за любое руководство. Приветствую.

+0

У вас есть проблемы с кодом, размещенным? Он содержит ошибки? Время компиляции или время выполнения? Вы должны дать нам указание на вашу проблему. – nvoigt

ответ

2

Невозможно сохранить его таким образом. Вектор - cocos2d-x, для которого требуются объекты cocos2d-x, которые расширяют класс Ref. Вместо этого вы можете использовать векторный (нижний регистр) из std следующим образом:

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

Это правильный путь. Большое спасибо. Приветствую. – Diego