3

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

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

很好,但是如果你所有的图像都在一个 sprite sheet 中,这是为了提高性能而推荐的?然后你必须做这样的事情来显示图像:

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

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

4

2 回答 2

1

这是我调整背景动画大小的方法。它由 2 帧组成,每帧 794 x 446。它需要是全屏、横向模式。请参阅下面的步骤 6。

--> Initialize background animations

-- 1. Data = define size and frames
local bgData = { width=794, height=446, numFrames=2, sheetContentWidth=1588, sheetContentHeight=446 }
-- 2. Sheet = define the sprite sheet
local bgSheet = graphics.newImageSheet( "hkc.png", bgData )
-- 3. Animation = define animation characteristics
local bgAnim = {
    { name = "bgAnimation", start = 1, count = 2, time = 800, loopCount = 0, -- repeat forever
      loopDirection = "forward"
    }
}
-- 4. Display the sprite (can't set size here unlike display.newImageRect)
local bg = display.newSprite( bgSheet, bgAnim )
-- 5. Center the animation
bg:setReferencePoint( display.CenterReferencePoint )
bg.x = display.contentCenterX
bg.y = display.contentCenterY
-- 6. Resize to match screen size based on a ratio with the actual background pixel dimensions
bg:scale( display.contentWidth / 794, display.contentHeight / 446 )
-- 7. Play the animation
bg:play()
于 2013-04-26T22:30:36.917 回答