2013-08-22 12 views
1

좋아, 내가 원하는 것은 내 gameState.gameLoading 다음에 전체 모드로 전환하는 코드이므로 다음 gameState.mainMenu 상태는 전체 화면입니다. 어떻게해야합니까? 내가 가진 코드는 다음과 같습니다 변수 :창 모드에서 전체 화면으로 이동

//Game States 
    public enum gameState 
    { 
     gameLoading, 
     mainMenu, 
     gameOptions, 
     levelSelect, 
     gamePlaying, 
     gameOver 
    } 
    gameState CurrentGameState = gameState.gameLoading; 

Update() 방법 :

 if (CurrentGameState != gameState.gameLoading) 
     { 
      IsMouseVisible = false; 
      graphics.IsFullScreen = true; 
     } 
     if (CurrentGameState == gameState.gameLoading) 
     { 
      IsMouseVisible = true; 
      graphics.IsFullScreen = false; 
     } 

는하지만이 작동하지 않습니다. 어떤 제안?

+2

graphics.ToggleFullScreen() 주 : XBOX –

+0

작동하지 않습니다 하지만 그것을'if()'메소드에 넣으면 예외가 생깁니다. 예를 들어 좋을 때까지 답장을 보내주십시오 (thsi 기능을 사용하지 않았습니다). – PowerUser

+0

예외는 무엇입니까? – davidsbro

답변

0

내가 찾은 해결책은 다음과 같습니다

 //Update() method 
     if (CurrentGameState == gameState.gameLoading) 
     { 
      if (Keyboard.GetState().IsKeyDown(Keys.Enter)) 
      { 
       graphics.ToggleFullScreen(); //? 
      } 
      graphics.ApplyChanges(); 
     } 
0

Heregraphics.ToggleFullScreen()을 사용하여 예외를 확인할 수 있습니다.

1

는이 같은 그래픽 변경 사항을 적용해야합니다

graphics.IsFullScreen = true; 
graphics.ApplyChanges(); 
// profit 
+0

전체 화면으로 이동 한 후에 예외가 다시 발생합니다. 시스템 .ObjectDisposedException 처리되지 않았습니다 "폐기 된 개체에 액세스 할 수 없습니다." Program.cs 줄에'Game.Run();'또한 전에 나는'Dispose()'메소드를 호출하지 않았다. – PowerUser

+0

@PowerUser 이것은 전체 화면으로 전환하려고 할 때만 발생합니까 아니면 그렇지 않은 경우에도 발생합니까? 'base.Initialized()'를 호출하기 전에'graphics.GraphicsDevice'에 접근하려했을 수도 있습니다. – Nolonar

+0

'base.Initialize();가'Initialize()'메소드에서 호출 될 때만 전환이 발생합니다. – PowerUser

관련 문제