Cocos-2dx v3居中背景精灵问题

Cocos-2dx v3 centering background sprite problems

这是我的背景图片:

这里有一些代码,我假设可以缩放此图像以完全适合屏幕。

Size visibleSize = Director::getInstance()->getVisibleSize();
auto bg = Sprite::create("grad.png");
bg->setScale(visibleSize.width / bg->getContentSize().width, visibleSize.height / bg->getContentSize().height);
bg->setAnchorPoint(Vec2(0,0));
addChild(bg);

我希望这 4 行创建一个覆盖整个屏幕尺寸的背景精灵。但是,这是我在 iPhone6+:

上实际得到的屏幕截图

如果我把第一行改成

Size visibleSize = Director::getInstance()->getWinSize();

那么这就是我得到的,也不太正确:

使用VisibleSize是正确的,你只需要再改变一下:

bg->setPosition(director->getVisibleOrigin());

默认情况下,cocos2d-x使用ResolutionPolicy::NO_BORDER,所以winSize的底部很可能会被裁剪掉。 getVisibleSize() returns Point 而非像素的可见原点。