using namespace tinyxml2
CCArray* EdgeSprite::createEdge(int perStages,b2World *world)
{
XMLDocument* pDoc = new XMLDocument();
unsigned char* pBuffer =NULL;
unsigned long bufferSize =0;
pBuffer = CCFileUtils::sharedFileUtils()->getFileData("stages.xml","r",&bufferSize);
if (pBuffer) {
pDoc->Parse((const char*)pBuffer);
//得到根节点
XMLElement* rootEle = pDoc->RootElement();
// CCLog("%s",rootEle->GetText());
XMLElement* stage = rootEle->FirstChildElement();
XMLElement* edge = stage->FirstChildElement();
while (stage) {
// printf("%s\n",stage->Attribute("name"));
if (string(stage->Attribute("name"))==string(CCString::createWithFormat("%d",perStages)->getCString()))
{
edge = stage->FirstChildElement();
while (edge) {
const XMLAttribute* attr = edge->FirstAttribute();
string name = string(attr->Value());
// printf("%s\t",name.c_str());
attr = attr->Next();
int x = attr->IntValue();
// printf("%d\t",x);
attr = attr->Next() ;
int y = attr->IntValue();
// printf("%d\t",y);
edge = edge->NextSiblingElement();
CCPoint p = ccpHeight(x,y);
this->createEdge( p.x,p.y,name,world);
}
}
stage = stage ->NextSiblingElement();
}
}
return EdgeBody;
}
原文链接:https://www.f2er.com/xml/298006.html