如何使 Corona 的精灵表与动态图像分辨率兼容。

Corona有一种方法可以根据设备分辨率动态创建图像:

img = display.newImageRect("image.png", 100, 100)

不错,但是如果您所有的图像都在精灵表中,建议使用这种方式来显示图像:

local data = require("sheet1")
local tileSheet = sprite.newSpriteSheetFromData("sheet1.png", data.getSpriteSheetData())
local tileSet = sprite.newSpriteSet(tileSheet, 1, 3)
local img = sprite.newSprite(tileSet)
img.currentFrame = 1

如何从精灵表中创建动态大小的图像?

原文链接 https://stackoverflow.com/questions/5667867

点赞
stackoverflow用户686008
stackoverflow用户686008
2011-04-14 23:39:24
stackoverflow用户2020527
stackoverflow用户2020527

以下是我如何调整我的背景动画的步骤。它由2帧组成,每个帧大小为794 x 446。它需要全屏和横向模式。请参考下面的第6步。

--> 初始化背景动画

-- 1. 数据 = 定义大小和帧
local bgData = { width=794, height=446, numFrames=2, sheetContentWidth=1588, sheetContentHeight=446 }
-- 2. 雪碧图 = 定义精灵表
local bgSheet = graphics.newImageSheet( "hkc.png", bgData )
-- 3. 动画 = 定义动画特征
local bgAnim = {
    { name = "bgAnimation", start = 1, count = 2, time = 800, loopCount = 0, -- 无限循环
      loopDirection = "forward"
    }
}
-- 4. 显示精灵(与 display.newImageRect 不同,这里无法设置大小)
local bg = display.newSprite( bgSheet, bgAnim )
-- 5. 居中动画
bg:setReferencePoint( display.CenterReferencePoint )
bg.x = display.contentCenterX
bg.y = display.contentCenterY
-- 6. 通过与实际背景像素尺寸的比例来调整大小以适应屏幕尺寸
bg:scale( display.contentWidth / 794, display.contentHeight / 446 )
-- 7. 播放动画
bg:play()
2013-04-26 22:30:36