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 而非像素的可见原点。
这是我的背景图片:
这里有一些代码,我假设可以缩放此图像以完全适合屏幕。
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 而非像素的可见原点。