Если у вас есть приложение командной строки, которое должно создать графическое устройство XNA, то код в этом ответе должен помочь.
В двух словах вам понадобятся некоторыеклассы из образца WinForms , чтобы избежать необходимости возиться с созданием сервисов графического устройства и т. д. (в частности, с классами ServiceContainer
и GraphicsDeviceService
).
Тогда вы можете сделать это:
Form form = new Form(); // Dummy form for creating a graphics device
GraphicsDeviceService gds = GraphicsDeviceService.AddRef(form.Handle,
form.ClientSize.Width, form.ClientSize.Height);
ServiceContainer services = new ServiceContainer();
services.AddService<IGraphicsDeviceService>(gds);
content = new ContentManager(services, "Content");
Тада - теперь у вас есть рабочий ContentManager
, который вы можете использовать для загрузки материала.Я полагаю, что вы также сможете получить GraphicsDevice
от GraphicsDeviceService
.
Форма, которую вы создаете, никогда не отображается.Не забывайте ссылаться на System.Windows.Forms.dll
в вашем проекте.
Отказ от ответственности: это было написано для XNA 3.1.Я не тестировал его в 4.0, но подозреваю, что он будет работать практически без изменений.