我試圖創建一個新類FadableSoundEffectInstance
,它繼承自SoundEffectInstance
。從內部SoundEffectInstance繼承,沒有定義構造函數
我FadableSoundEffectInsance
將使SoundEffectInstances
被easlily褪色進出,但完成課後,我與這個可愛的錯誤在這裏進行獎勵:
The type 'Microsoft.Xna.Framework.Audio.SoundEffectInstance' has no constructors defined
一段時間的研究後,並深入挖掘XNA來源,我找到了這個。
internal SoundEffectInstance(SoundEffect parentEffect, bool fireAndForget)
{
...
}
所以它有一個構造函數,但我無法訪問它。
我該如何解決這個問題以便能夠創建我的課程?
請注意,以前沒有使用過XNA的用戶,請勿使用blah = new SoundEffectInstance
創建新類,而要加載SoundEffect
並使用方法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();
}
順便說一聲:'SoundEffectInstance'沒有密封。 –
@DanielHilgarth,對不起,對不起。 – Cyral