如何切割高度和宽度均匀的图像4X4 = 16件?

时间:2016-01-05 12:56:35

标签: ios image uiimage cocos2d-x

我正在做滑动益智游戏我需要帮助如何切割图像并使更多的精灵图像这个图像按照降序排列,玩家将安排纠正位置。

知道如何在cocos2d-x 3.2中切片图像任何人都请帮我解决这个问题。

谢谢老兄。

2 个答案:

答案 0 :(得分:1)

您可以使用setTextureRect()在cocos2d-x中切片精灵。例如,这是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]);
}

结果:
enter image description here
当然,您可以按随机顺序显示它们。我希望这会对你有所帮助。

答案 1 :(得分:0)

我不知道它是否适用于cocos2d,但它是iOS中的完美解决方案。
请按照给定的链接:
How to programmatically slice an image in 4 , 9 , 16 and 25 slices

您也可以从Github下载应用程序:
https://github.com/bpolat/Image-Slicer