Вы можете нарезать спрайт в cocos2d-х с помощью setTextureRect()
. Например, вот код для 16 сегментов, вы можете изменить его на свой номер:
Size visibleSize = Director::getInstance()->getVisibleSize();
vector<Sprite*> vecSprites;
for (int i = 0; i <= 15; i++)
{
Sprite* segment = Sprite::create("example.png");
float segmentWidth = segment->getBoundingBox().size.width/4;
float segmentHeight = segment->getBoundingBox().size.height/4;
float originX = (i % 4) * segmentWidth;
float originY = ((int)i/4) * segmentHeight;
segment->setTextureRect(Rect(originX, originY, segmentWidth, segmentHeight));
vecSprites.push_back(segment);
}
Показать сегменты спрайт на экране в обратном порядке:
for (int i = 15; i >= 0; i--)
{
vecSprites[i]->setPosition((i%4) * visibleSize.width/4, (((int)i/4) + 1) * visibleSize.height/4);
vecSprites[i]->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT);
this->addChild(vecSprites[i]);
}
Результат:

Конечно, вы можете отображать их в произвольном порядке. Я надеюсь, что это поможет вам.
Спасибо за этот отзыв, – Guru