gpt4 book ai didi

function - Corona SDK钢琴应用程序-交换声音等

转载 作者:行者123 更新时间:2023-12-02 23:35:35 24 4
gpt4 key购买 nike

所以基本上我是用Corona SDK(我的第一个项目)制作钢琴应用程序,而我是新手。我在电晕论坛上已经问过一些关于我的问题的问题,但是我没有获得对我有帮助的确切答案,因此,我正在寻求您的帮助。正如我所说的那样,我可能很难破解所需的代码,但是我知道您,更有经验的Corona用户,可以轻松地做到这一点。

我为每个键使用此代码:(我知道media.playEventSound是执行此操作的弱项,我已经看到一些有关在Coronalabs上播放音频的库,例如audio.loadSound等。但是,如果可能的话,我当然会希望保留基于“媒体...”的功能)

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种踏板持续音频文件)和需要按键上音符的按钮。
这是我的问题-如何将所有内容合并为一个代码?
我的意思是,您可以在此处为我编写一个按键的代码吗,例如我下面发布的此示例,但包括我刚才提到的那些功能?我真的很想解决这个问题。
顺便说一句。我知道soundTable / fileTable方法,但是它被调用了,但是我想我有足够的时间分别做每个键-也许使用表方法-我只希望它很简单,因为这是我的第一个项目,因此应该。

对不起,我的英语,谢谢!

最佳答案

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

bool(boolean) 变量:

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个踏板+音符按钮)

    关于function - Corona SDK钢琴应用程序-交换声音等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508205/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com