こちらの中で、スマホで表示すると画像サイズが変わるような事を書きましたが。
分かった。
sprite->getContentSize()で画像のサイズを取得することができるのですが、
Windowsとスマホではこの値が変わる。
なので、
クリッピングする時はPixel値を直接入力するのでは無くて、
このsprite->getContentSize()で取得した値を元にクリップするサイズを指定しなければならない。
auto sprite = Sprite::create("pipo-charachip001b.png");
if (sprite == nullptr)
{
problemLoading("'pipo-charachip001b.png'");
}
else
{
// position the sprite on the center of the screen
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
// add the sprite as a child to this layer
this->addChild(sprite, 0);
}
sprite->setScale(3.0);
auto str = String();
str.appendWithFormat("width %f height %f", sprite->getContentSize().width, sprite->getContentSize().height);
label->setString(str.getCString());
double partswidth = sprite->getContentSize().width / 3.0;
double partsheight = sprite->getContentSize().height / 4.0;
Vector<SpriteFrame*> animFrames;
animFrames.reserve(12);
animFrames.pushBack(SpriteFrame::create("pipo-charachip001b.png", Rect(0,0, partswidth, partsheight)));
animFrames.pushBack(SpriteFrame::create("pipo-charachip001b.png", Rect(partswidth * 1,0, partswidth, partsheight)));
animFrames.pushBack(SpriteFrame::create("pipo-charachip001b.png", Rect(partswidth * 2,0, partswidth, partsheight)));
Animation* animation = Animation::createWithSpriteFrames(animFrames, 0.1f);
Animate* animate = Animate::create(animation);
sprite->runAction(RepeatForever::create(animate));
return true;
あとはプラットフォームに合わせて拡大すれば良い。
解決。