【问题标题】:Unable to create a working sprite无法创建工作精灵
【发布时间】:2017-09-22 13:28:59
【问题描述】:

我无法为我的应用程序的这个单一区域创建工作动画精灵。

我正在使用 Corona SDK 并拥有以下精灵:

这是名称mainCharacter.png。我有一个名为mainCharacter@2x.png 的双尺寸版本。

我有工作表选项,2 个序列,我正在构建一个图像工作表并将其传递给我的精灵:

local playerSheetOptions =
{
    width = 50,
    height = 50,
    numFrames = 17,
    sheetContentWidth = 500,
    sheetContentHeight = 100
}
local playerSequences = {
    {
        name = "idle",
        start = 1,
        count = 12,
        time = 1200,
        loopCount = 0,
        loopDirection = "bounce"
    },
    {
        name = "jump",
        start = 13,
        count = 5,
        time = 600,
        loopCount = 1
    },
}
local playerSheet = graphics.newImageSheet( "resource/images/mainCharacter.png", playerSheetOptions )
local player = display.newSprite(gameSheet, playerSheet, playerSequences)

我收到以下错误:

display.newSprite() requires argument #2 to a table containing sequence data

如果我print相关数据:

print(gameSheet)
print(playerSheet)
print(playerSequences)

我明白了:

14:27:05.703  userdata: 12445228
14:27:05.703  userdata: 0CF42600
14:27:05.703  table: 0CF41FD0

我哪里错了?我已经尝试了很多简化序列,但仍然得到相同的结果。

【问题讨论】:

    标签: lua sprite coronasdk


    【解决方案1】:

    使用

    local player = display.newSprite(playerSheet, playerSequences)
    

    而不是

    local player = display.newSprite(gameSheet, playerSheet, playerSequences)
    

    来自电晕documentation

    一旦图像表和序列设置完毕,一个新的精灵对象 可以使用 display.newSprite() API 创建:

    display.newSprite([parent,] imageSheet, sequenceData)

    对于这个 API,父 参数是可选的,表示要在其中显示组 插入精灵。 imageSheet 参数定义默认图像 精灵的工作表,而 sequenceData 是包含所有 sprite 的序列。

    阅读更多关于Sprite Animation的信息。

    【讨论】:

    • 但我需要将其插入gameSheet。它抱怨imageSheet 不正确
    • newSprite 的第一个参数应该是组名,但gameSheet 变量并不意味着它是display group。所以我删除它。我测试了你的代码。它可以在我的电脑上运行。
    • 是的,你是对的,我在那里输入了错误的变量名。谢谢:)
    猜你喜欢
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多