如何在 monogame 中使用按钮更改音量?
How can I change sound volume with buttons in monogame?
我想在设置中使用按钮更改我的 c# 编写的单人游戏的音量。
我有两个按钮。一种用于较低音量,另一种用于较高音量。
按钮背后的功能如下:
public static void VolumeHigher()
{
if (SoundEffect.MasterVolume != 1.0f)
{
SoundEffect.MasterVolume += 0.1f;
}
}
public static void VolumeLower()
{
if (SoundEffect.MasterVolume != 0.0f)
{
SoundEffect.MasterVolume -= 0.1f;
}
}
当我点击更高或更低时,有一点变化。
当我点击更高或更低几次时,它越来越低。没关系,如果我点击更高或更低。它越来越低。
而且只低一点点。你可以听到它,但我并没有变得更安静。
此时只有两个音量步长。一个 "normal" 个和一个 "little bit lower" 个。
另一个实现:
public static void VolumeHigher()
{
if (SoundEffect.MasterVolume <= 1.0f || SoundEffect.MasterVolume >= 0.0f)
{
SoundEffect.MasterVolume += 0.1f;
}
else
{
Console.WriteLine("The sound is loud enough. Protect your ears!");
}
}
public static void VolumeLower()
{
if (SoundEffect.MasterVolume > 0.0f || SoundEffect.MasterVolume <= 1.0f)
{
SoundEffect.MasterVolume += 0.1f;
}
else
{
Console.WriteLine("The sound is quiet. You don't hear it anymore!");
}
}
我收到错误 System.ArgumentOutOfRangeException。
我不明白这个例外,因为0.0f是静音,1.0f是全音量。并且在这段代码中,音量不能超出范围。
我怎样才能正确地做到这一点?
我在这里的其他问题上找不到帮助。
请问有没有人可以帮助我?
你的第二个代码片段中的问题是你对 || 的使用运算符。
例如,在 VolumeHigher 方法中,您正在检查声音是否小于 1.0f 或声音是否大于 0.0f。在您的情况下,这将始终为真,因此您将添加 0.1f,从而获得 ArgumentOutOfRangeException。
您可以简单地删除“|| SoundEffect.MasterVolume >= 0.0f”,它应该可以正常工作。
相同的逻辑适用于 VolumeLower 方法。
我想在设置中使用按钮更改我的 c# 编写的单人游戏的音量。 我有两个按钮。一种用于较低音量,另一种用于较高音量。 按钮背后的功能如下:
public static void VolumeHigher()
{
if (SoundEffect.MasterVolume != 1.0f)
{
SoundEffect.MasterVolume += 0.1f;
}
}
public static void VolumeLower()
{
if (SoundEffect.MasterVolume != 0.0f)
{
SoundEffect.MasterVolume -= 0.1f;
}
}
当我点击更高或更低时,有一点变化。 当我点击更高或更低几次时,它越来越低。没关系,如果我点击更高或更低。它越来越低。 而且只低一点点。你可以听到它,但我并没有变得更安静。 此时只有两个音量步长。一个 "normal" 个和一个 "little bit lower" 个。
另一个实现:
public static void VolumeHigher()
{
if (SoundEffect.MasterVolume <= 1.0f || SoundEffect.MasterVolume >= 0.0f)
{
SoundEffect.MasterVolume += 0.1f;
}
else
{
Console.WriteLine("The sound is loud enough. Protect your ears!");
}
}
public static void VolumeLower()
{
if (SoundEffect.MasterVolume > 0.0f || SoundEffect.MasterVolume <= 1.0f)
{
SoundEffect.MasterVolume += 0.1f;
}
else
{
Console.WriteLine("The sound is quiet. You don't hear it anymore!");
}
}
我收到错误 System.ArgumentOutOfRangeException。 我不明白这个例外,因为0.0f是静音,1.0f是全音量。并且在这段代码中,音量不能超出范围。
我怎样才能正确地做到这一点? 我在这里的其他问题上找不到帮助。 请问有没有人可以帮助我?
你的第二个代码片段中的问题是你对 || 的使用运算符。
例如,在 VolumeHigher 方法中,您正在检查声音是否小于 1.0f 或声音是否大于 0.0f。在您的情况下,这将始终为真,因此您将添加 0.1f,从而获得 ArgumentOutOfRangeException。
您可以简单地删除“|| SoundEffect.MasterVolume >= 0.0f”,它应该可以正常工作。
相同的逻辑适用于 VolumeLower 方法。