电晕SDK钢琴应用程序 - 交换声音,等等



因此,我基本上是在Corona SDK(我的第一个项目)中制作钢琴应用程序,而IM是新的。我在Corona论坛上问了一些有关我的问题的问题,但我没有获得对我有帮助的确切答案,因此我要寻求您的帮助。正如我所说的,我很难弄清所需的代码,但我知道您是经验丰富的电晕用户,可以轻松执行此操作。

我为每个键使用此代码:(我知道媒体.playeventsound是非常薄弱的选择,我看到了一些关于在coronalabs上播放音频的库。当然,我想呆在"媒体..." - 基于功能)

local widget = require("widget")
local C      = media.newEventSound("C.mp3")
local button_C_Press = function(event)
  media.playEventSound(C, button_C_Press)
end
local button_C = widget.newButton
{
  defaultFile = "NewKey.png",
  overFile    = "NewKey2.png",
  onPress     = button_C_Press,
}
button_C.x = 20; button_C.y = 295

我希望钢琴有2个踏板,这些踏板在按下时只能切换声音(我在项目文件夹中总共有3个不同的声音段段 - 默认和2个踏板持续的音频文件)和按钮,需要在钥匙。这是我的问题 - 如何将所有这些都放入一个代码中?我的意思是,您能给我写下一个密码,例如我在下面发布的示例,但包括我刚才提到的那些功能吗?我真的很想解决这个问题。顺便提一句。我知道声音/案件的方法,但是它被称为,但是我认为我有足够的时间单独执行每个密钥 - 或者可能使用表方法 - 我只希望它很容易,beaccuse这是我的第一个项目。/p>

对不起我的英语,谢谢!

您已要求提供更多代码;我在电晕论坛上推荐了这个

布尔变量:

local isPedalActive = false

当他们触摸踏板按钮时,然后将其设置为true:

isPedalActive = true

然后将其添加到button_c_press函数:

if event.phase == "began" then
  if isPedalActive = true then
    media.playEventSound(cPedal) --assuming you already loaded your audio above
  end
end

当然,如果您有大量的钢琴钥匙,最好不要单独执行每个功能,而是:

  1. 在widget.newbutton表中为每个键设置一个特定ID。

  2. 在if语句中,在那里加载声音,但是您会检索按钮的ID并播放该mp3文件。

(仅支持一个踏板)

 --create table of key button ids and mp3 files for their pedal noises
local keys = {
  {buttonId = "C", pedalNoise = "Cpedal.mp3"},
  {buttonId = "D", pedalNoise = "Dpedal.mp3"}
}
function pianoKeys(event)
  for i = 1, #keys do -- for each table in the keys table, load the sound for each key
    local keySound = media.newEventSound(keys[i].buttonId .. ".mp3") -- normal sound loaded
    local keypedalSound = media.newEventSound(keys[i].pedalNoise) --pedal sound loaded
    function buttonPress(event)  --When they press the key, detect if the pedal is active
      if event.phase == "began" then
        if isPedalActive == true then 
          media.playEventSound(keyPedalSound) --is active, play pedal sound
        else
          media.playEventSound(keySound) -- is not active, play regular sound
        end
      end
    end
    local pianoKey = widget.newButton({
      id = keys[i].buttonId, -- place appropriate id
      defaultFile = "new" .. keys[i].buttonId .. "key.png", -- place appropriate defaultFile
      overFile = "new" .. keys[i].buttonId .. "key2.png", -- place appropriate overFile
      onPress = buttonPress -- apply above function to each key
    })
  end 
end

我的问题 - 我不想制作音桌。我宁愿单独执行每个键。就像我在下面发布的一个密钥代码的示例一样。但是如何?我不知道如何将所有内容融入一个有效的东西:/(2个踏板 笔记按钮)

相关内容

  • 没有找到相关文章

最新更新