XNA GraphicsDevice нельзя вызвать из других классов - PullRequest
2 голосов
/ 16 сентября 2011

все!Я разрабатываю платформер в XNA / C # и сталкиваюсь с проблемами с GraphicsDevices.Я слышал, что XNA требует GraphicsDevices во многих методах, но он может быть вызван только после LoadContent (), что проблематично для меня, так как в моем проекте будет много классов.Как я могу получить GraphicsDevice?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Вот пример кода: http://pastebin.com/vrYhA6MA

Ответы [ 2 ]

3 голосов
/ 16 сентября 2011

В своем классе Game добавьте переменную GraphicsDeviceManager, например, так:

GraphicsDeviceManager graphics;

Теперь, в вашем конструкторе Game, инициализируйте его так:

graphics = new GraphicsDeviceManager(this);

После конструктора Game в методах Initialize и LoadContent должна быть загружена переменная graphics.GraphicsDevice. Вы можете передать его в методы и задать настройки, такие как DepthStencilState и т. Д.

0 голосов
/ 16 сентября 2011

Мой метод всегда был предпочтительным - передавать ссылку на объект Game через конструкторы любых других классов. Таким образом, я могу позвонить

this.Texture = game.Content.Load<Texture2d>("Fred");

Например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...