2011-04-07 72 views
1

我正在爲Windows Phone 7開發,並且在使用Guide.BeginShowMessageBoxGuide.BeginShowKeyboardInput時遇到了一些問題。一旦出現消息框,應用程序有時會崩潰並顯示以下錯誤:XNA似乎在顯示消息框後重置着色器

「在執行任何繪製操作之前,必須在設備上設置頂點着色器和像素着色器。」

奇怪的是,它似乎像它的崩潰,而該消息框是可見的,但我有以下檢查我的更新之前,繪製在我的遊戲類方法:

protected override void Update(GameTime gameTime) { 
     if (IsActive && !Guide.IsVisible) { 
      //Update stuff here 
     } 
     base.Update(gameTime); 
    } 

    protected override void Draw(GameTime gameTime) { 
     if (IsActive && !Guide.IsVisible) { 
      //Draw stuff here 
     } 
     base.Draw(gameTime); 
    } 

錯誤肯定似乎雖然我的//Draw stuff here方法內發生。而且它似乎並不是每一次。只有在第四個消息框發生後纔會發生。

有沒有辦法在繪製之前判斷頂點着色器還是像素着色器沒有設置?我正在使用BasicEffect對象來繪圖。

+0

你有沒有在AppHub論壇發佈這個?我敢打賭,你可以讓Shawn Hargreaves或者XNA團隊的其他人對它進行評論。 – eodabash 2011-04-11 21:52:59

回答

0

在執行任何其他操作之前,在Draw調用的開始處重新應用BasicEffect似乎可以解決問題。