我想用cocos2d和Box2D编写iPhone游戏,这意味着我必须在Objective-C和C++之间进行混合。我有一个关于使用指针指向我创建的gameLevels和levelObjects的对象的问题。迭代指针向量指针
我有一个名为GameLevel的类,它包含一个levelObjects向量。我认为使用指针是做到这一点的方法,以确保尽可能少地使用内存。这意味着我的矢量是
std::vector<LevelObject*>* levelObjects;
LevelObject类包含精灵,b2bodyDef等等,以及所有指针。
当我想绘制一个关卡时,我想通过这个向量迭代时出现问题。我写的代码是这样的:
-(void)startLevel:(b2World*) world withLevel:(GameLevel*) level{
std::vector<LevelObject*>::iterator it;
for (it = level->getLevelObjects()->begin() ; it != level->getLevelObjects()->end(); ++it) {
CCSprite* sprite = it->sprite; //Here XCode complaints about "Member reference base type 'LevelObject *' is not a structure or union" and "Use of undeclared identifier 'sprite'". I cannot seem to access any of the objects variables/methods from it->
所以我想问的问题是:这是一个很好的方法来此,用指针的指针的载体?为什么迭代不工作?
谢谢:)
编辑:getLevelObjects()是:
std::vector<LevelObject*>* getLevelObjects(){return levelObjects;}
啊,当然! :d – Jambaman