Я хочу создать приложение (WinForms), состоящее из нескольких панелей. Для каждой панели, я хочу, чтобы иметь возможность назначить файл .dll:Как запускать несколько подключаемых к XNA-игр в одном окне WinForms
Эти DLL-файлы должны содержать XNA игры, которые должны быть оказаны в соответствующей панели.
я могу загрузить эти игры с
var game = (Game)Activator.CreateInstance(System.Reflection.Assembly.LoadFrom(path).GetTypes()
.First(t => t.IsSubclassOf(typeof(Game))));
Теперь я не могу использовать game.Run()
, потому что он будет начать второй цикл обработки сообщений.
Запуск новой нити также не выполняется из-за InvalidOperationException
s относительно доступа к элементам управления из другого потока.
Уроки, которые я нашел в Интернете, были способны справиться с игрой, которую я пишу сам, и включить ее в основное приложение, но я хочу иметь возможность добавлять другие игры, похожие на плагины.
Как я могу заставить приложение WinForms отображать эти игры XNA, или есть лучшее решение для этого?
Благодарим вас за предложение. Теперь я создаю эти «DrawableGameComponents» в игре, которую я скрываю потом, и показываю их в панелях на моей форме. – pascalhein
@csharpler Отлично! Рад, что вы его работали. – jgallant
На самом деле, у меня есть еще один вопрос: при запуске игры с несколькими DLL она показывает только первую в каждой панели (а также загружает только первый тип). как я могу загружать разные типы и отображать в каждой панели разные «DrawableGameComponent»? – pascalhein