我正在尝试创建一个新类FadableSoundEffectInstance
,它继承自SoundEffectInstance
.
我的FadableSoundEffectInsance
意志可以SoundEffectInstances
很容易地淡入淡出,但是在完成课程后,我在这里得到了这个可爱的错误:
The type 'Microsoft.Xna.Framework.Audio.SoundEffectInstance' has no constructors defined
经过一段时间的研究和深入研究 XNA 源代码后,我发现了这一点。
internal SoundEffectInstance(SoundEffect parentEffect, bool fireAndForget)
{
...
}
所以它确实有一个构造函数,但我无法访问它。
我该如何解决这个问题才能创建我的课程?
请注意,以前没有使用过 XNA 的人,不要创建新类,blah = new SoundEffectInstance
而是加载 aSoundEffect
并使用方法CreateInstance()
。另外,SoundEffect
是密封类。此外,向我的新类添加构造函数将引发相同的错误,但SoundEffectInstance
相反。
这是我的相关代码,以防您需要深入了解
FadableSoundEffectInstance
public sealed class FadableSoundEffectInstance : SoundEffectInstance
{
public float FadeSpeed = .01f;
public AudioFadeState FadeState = AudioFadeState.Normal;
public void FadeOut()
{
//Logic
}
public void FadeIn()
{
//Logic
}
public void Update(GameTime gameTime)
{
//Logic
}
}
还有一个扩展方法,所以我可以调用SoundEffect.CreateFadableInstance()
public static FadableSoundEffectInstance CreateFadableInstance(this SoundEffect soundEffect)
{
return (FadableSoundEffectInstance)soundEffect.CreateInstance();
}