如何在Corona SDK/LUA中创建函数随机显示图像并播放音频文件?

最近我开始使用Corona SDK开发一个拼图游戏的应用。我还不太熟悉Corona,我正在寻找如何随机显示图片和声音的解决方案。可能有不同的图片代表字母表中的不同字母,当用户点击某个特定字母时会播放不同的声音。我自己试过这个问题,但是我仍然不知道如何解决。如果有人能给我一个提示或解决方案,我将非常感激,因为我已经尝试寻找类似的例子,但都没有成功。

local function main()

display.setDefault( "background", 215, 1, 215 )

  --加载声音文件

 local a_letter = audio.loadSound("a_letter.wav")

  local puzzleArray = {"blockA.png", "blockB.png"} ,
  puzzle = display.newImage( puzzleArray [math.random(#puzzleArray)])
  puzzle.x = math.random( 115, display.contentWidth - 115 )
  puzzle.y = math.random( 115, display.contentHeight - 115 )
  puzzle.type = puzzleType
  puzzle.alpha = 0.5

  function puzzle: tap(event)
    if puzzle.alpha == 0 then
    transition.to(puzzle, {time = 1000, alpha=0})
  else
    transition.to(puzzle, {time = 150, alpha=1})
    end
  end

   --按钮点击事件
 local a_puzzle = function(event)
  audio.play(a_letter)
 end

  puzzle: addEventListener("tap", puzzle)
  puzzle:addEventListener("tap", a_puzzle)

end
main()

这是我的实际工作代码,但是在未来,我想建立不同的关卡并为每个点击的字母显示不同的单词和声音。我考虑过关联数组和表,但我不确定这是否可行,我希望有更有经验的人能帮助解决。 谢谢。

点赞
用户3974215
用户3974215

如果你想要同一个字母播放相同的音频,你可以使用下面这样的表格:

local resources={
    letterA={audio_file="XXX.mp3",img="XXX.png"},
    letterB={audio_file="XXX.mp3",img="XXX.png"},...
}

同时你可以使用下面的代码:

math.randomseed(tonumber(tostring(os.clock() * 1000000):reverse():sub(1, 8)) or os.time())

替换原来的代码:

math.randomseed(os.time())
2014-09-16 07:27:42