【问题标题】:It is possible to use at the same time two players with jFuguejFugue可以同时使用两个播放器
【发布时间】:2021-09-22 19:37:06
【问题描述】:

我正在尝试制作一款音乐游戏(有点像“吉他英雄”),但我遇到了一些问题,无法在玩家播放错误的“音符”时通知他/她。现在只是一个基本系统,但例如如果玩家必须按下向上箭头并错过它(无论玩家点击另一个或根本没有点击任何键),我想发出声音或播放调音。

我正在尝试两种方法:

a) 使用第二个播放器,当检测到未命中时,播放一个走调的和弦。

b) 修改正在播放的样式的音量。

对于第一个,我认为不可能同时玩 2 个玩家,我将在本周末尝试使用第二个线程。尽管如此,理论上我认为它不应该起作用,因为两个玩家将使用相同的 PC 音板来执行不同的指令。这是我在尝试此选项时得到的错误的主要原因:

线程“Thread-2”中的异常 java.lang.NumberFormatException: 值 超出范围。值:"200" 基数:10

(“200”是我给未命中音符的音量值,但我放多少并不重要,因为它总是失败。)

对于第二个,我没有发现任何正在复制和修改的模式的示例,也没有任何问题可以确认它是可能的。

知道我应该尝试什么吗?

【问题讨论】:

    标签: real-time-updates jfugue


    【解决方案1】:

    播放器通过连接到 MIDI 音序器来播放音乐,而您的系统上只有一个播放器,因此您实际上可以只有一个播放器。 (我现在意识到 JFugue API 并没有强制执行,也许它应该执行。)

    MIDI 有 16 个通道,JFugue 称之为 Voices。您可以在 Voice 0 中播放歌曲的主旋律,并在 Voice 5 中播放播放器的反馈,而不是使用两个 Player。每个声音中的音符可以使用不同的乐器。如果演奏者得到正确的音符,Voice 0 和 Voice 5 音符将一起发声。如果他们弄错了,您可以在 Voice 5 中播放不同的内容,或者如果他们根本不播放任何内容,您可以在 Voice 5 上不播放任何内容。

    如果您一次演奏一个音色 0 和音色 5 音符(而不是在游戏开始时发送完整模式),您还可以将音色 0 上的音符的开启力度和关闭力度修改为让它听起来更微弱。

    (Voice 9 是打击乐曲目,所以不要在上面播放!)

    我们需要查看一些源代码来了解为什么您会收到音量错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多