如何使精灵适合多个设备的整个屏幕

Posted

技术标签:

【中文标题】如何使精灵适合多个设备的整个屏幕【英文标题】:How to make sprites fit the entire screen of more than one device 【发布时间】:2016-10-30 23:09:51 【问题描述】:

我使用 corona 已经有一段时间了,我想知道如何制作一个精灵(使用纹理打包器)并将其设置为我的应用程序的背景。我还希望它能够适应尽可能多的设备,而不会裁剪出任何精灵内容。简而言之,我希望精灵成为适合整个屏幕的背景,而不会丢失任何精灵的内容

【问题讨论】:

【参考方案1】:

希望对你有帮助:

local _W = display.actualContentWidth
local _H = display.actualContentHeight

local bg = display.newImage( 'bg.jpg' )
bg.x, bg.y = display.contentCenterX, display.contentCenterY


local mode = 'inside'

-- the image will fill the device width/height exactly
if mode == 'stretch' then
    bg.width, bg.height = _W, _H

-- the image will be scaled proportionally to fit inside the device width/height
elseif mode == 'inside' then
    local scale = math.min( _W / bg.width, _H / bg.height )
    bg:scale(scale, scale)

-- the image will be scaled proportionally to completely fill the area, 
-- allowing portions of it to exceed the bounds defined by device width/height
elseif mode == 'outside' then
    local scale = math.max( _W / bg.width, _H / bg.height )
    bg:scale(scale, scale)
end

【讨论】:

感谢您的回复。您能否解释一下您的代码,以便我了解它的作用? 加载图像 (bg.jpg) 并设置为中心位置。更改 de 模式并查看结果(“拉伸”、“内部”或“外部”): - 拉伸:图像将完全填充设备的宽度/高度; - 内部:图像将按比例缩放以适合设备宽度/高度; - 外部:图像将按比例缩放以完全填充该区域,允许其部分超出设备宽度/高度定义的范围。

以上是关于如何使精灵适合多个设备的整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

如何使相机适合对象

哪种软件最适合跨多个设备测试网站?

如何使用多个精灵表? cocos2d/iPhone

Sprite Kit,使多个精灵遵循相同的方法

在不使用点精灵的情况下在屏幕上的不同点渲染多个纹理

如何使圆形收集单元适合所有屏幕?