前言
我们知道,cocos2dx 中屏幕适配的设置方法是
Director::getInstance()->getOpenGLView()->setDesignResolutionSize(960, 640, kResolutionShowAll);
为了保持我们的游戏不被拉伸,选择showAll方法。但是有一个问题,showAll会留黑边,那么我们只需要在openGL中渲染黑边即可。这样黑边就会被填充为我们自己设置的图片。话不多说,看看下面的代码。
MainScene.lua
调用示例如下,只需要在onEnter里面渲染即可
function MainScene:onEnter()
local function createSpriteWithPathPosScale(path, pos)
local sprite = cc.Sprite:create(path)
sprite : setAnchorPoint(cc.p(0.5, 0.5))
sprite : setPosition(pos)
return sprite
end
local frameSize = cc.Director:getInstance() : getOpenGLView() : getFrameSize()
local layer = cp.ScreenMatchLayer : create()
layer:retain()
local sprite = createSpriteWithPathPosScale("ui_img_left.jpg", cc.p(-44, 320))
layer : getChildByName("_node") : addChild(sprite)
sprite = createSpriteWithPathPosScale("ui_img_right.jpg", cc.p(960 + 44, 320))
layer : getChildByName("_node") : addChild(sprite)
sprite = createSpriteWithPathPosScale("ui_img_top.jpg", cc.p(480, 640 + 32.5))
layer : getChildByName("_node") : addChild(sprite)
sprite = createSpriteWithPathPosScale("ui_img_down.jpg", cc.p(480, -32.5))
layer : getChildByName("_node") : addChild(sprite)
end