xna를 시본 생성할 시에, program.cs와 game1.cs가 생성 됩니다.
program.cs에는 다음과 같이..
namespace XXXX
{
static class Program
{
static void Main(string
[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
}
}
이렇게 game1.cs를 불러옵니다. 이 안에는 게임이 구현되어 있죠..
그래서, 이미 만들어진 game1.cs를 메뉴와 연동시키기 위해서 gameplaymenu.cs의 public override void Draw(GameTime gameTime)안에
using (XXXX.Game1 game1 = new XXXX.Game1())
{
game1.Run();
}
이런식으로 불러 들였더니, 실행은 되지면 저 구문을 사용하는 메뉴를 선택시 game1.Run();에서 다음과 같은 에러가 발생하네요.
처리되지 않은 'System.InvalidOperationException' 형식의 예외가 System.Windows.Forms.dll에서 발생했습니다.
추가 정보: 단일 스레드에서 두 번째 메시지 루프를 시작할 수 없습니다. 대신 Form.ShowDialog를 사용하십시오.
그러나 Form.ShowDialog로는 사용 할 수 없었습니다. form으로 안만들었기 때문이죠=ㅛ=; 이럴때 방법이 없을까요?
(참고로, game1.cs는
http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2/Camera_delay.php를 참고하였기에 여기 있는 소스와 거의 동일 합니다.)
저의 생각으로는 이 튜토리얼을 따라하면 창이 하나뜨면서 실행이 됩니다.
그런데 따로 게임 메뉴를 만들었는데 거기서도 창이 하나가 뜨니, 서로 창이 이중으로 뜨니까 에러가 나는거 같긴한데 어찌해야 할지 모르겠네요..