因此,我基本上是在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
当然,如果您有大量的钢琴钥匙,最好不要单独执行每个功能,而是:
在widget.newbutton表中为每个键设置一个特定ID。
在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个踏板 笔记按钮)