Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;PugiXML向量迭代器不兼容错误_C++_Visual Studio 2010_Box2d_Sfml_Pugixml - Fatal编程技术网

C++ C++;PugiXML向量迭代器不兼容错误

C++ C++;PugiXML向量迭代器不兼容错误,c++,visual-studio-2010,box2d,sfml,pugixml,C++,Visual Studio 2010,Box2d,Sfml,Pugixml,我有一个应用程序,我使用PugiXML将XML代码解析成带有纹理的sprite。但是,我遇到了让这个用于循环工作的问题,因为编译器在循环期间不断返回表达式:向量迭代器不兼容运行时错误,就在initCollisionObject启动时。任何帮助都将不胜感激 用于循环: for (xml_node collisions = doc.child("level").child("collisions").child("object"); collisions; collisions = collisio

我有一个应用程序,我使用PugiXML将XML代码解析成带有纹理的sprite。但是,我遇到了让这个
用于
循环工作的问题,因为编译器在循环期间不断返回
表达式:向量迭代器不兼容
运行时错误,就在
initCollisionObject
启动时。任何帮助都将不胜感激

用于
循环:

for (xml_node collisions = doc.child("level").child("collisions").child("object"); collisions; collisions = collisions.next_sibling("object"))
{
    xml_attribute textureAttribute = collisions.attribute("spritesheet");
    xml_attribute xPosAttribute = collisions.attribute("x");
    xml_attribute yPosAttribute = collisions.attribute("y");
    xml_attribute rotationAttribute = collisions.attribute("rotation");

    std::string texture = textureAttribute.as_string();
    int xPos = xPosAttribute.as_int();
    int yPos = yPosAttribute.as_int();
    int rotation = rotationAttribute.as_int();

    collisionArray.push_back(collisionObject);
    collisionArray[currentCollisionObjectIndex].initCollisionObject(texture, _world, xPos, yPos, rotation);

    currentCollisionObjectIndex++;
}
initCollisionObject
函数:

void CollisionObject::initCollisionObject(std::string fileName, b2World &_world, float objectX, float objectY, float objectRotation)
{
    collisionObjectSpriteImage.loadFromFile(fileName);
    //spriteImage.createMaskFromColor(sf::Color::White);
    collisionObjectSpriteTexture.loadFromImage(collisionObjectSpriteImage);
    collisionObjectSprite.setTexture(collisionObjectSpriteTexture);
    width = collisionObjectSprite.getGlobalBounds().width;
    height = collisionObjectSprite.getGlobalBounds().height;
    x = objectX;
    y = objectY;
    rotation = objectRotation;
    collisionObjectSprite.setOrigin(collisionObjectSprite.getGlobalBounds().width / 2, collisionObjectSprite.getGlobalBounds().height / 2);
    collisionObjectSprite.setPosition(x, y);
    collisionObjectSprite.setRotation(rotation);

    createStaticCollision(_world, x, y, width, height, rotation);

    return;
}

这听起来很可笑,但重新启动计算机实际上解决了问题