Объект GraphicsDeviceManager из моего класса (лучшее объяснение в посте) - PullRequest
0 голосов
/ 20 августа 2011

Хорошо, у меня есть класс GameObject (я сам его создал), и я хотел создать, например, переменную GraphicsWidth, которая содержит максимальную ширину экрана, это означает, что мне нужно создать экземпляр GraphicsDeviceManager. (Правильно?). Хорошо, это то, что я сделал:

protected GraphicsDeviceManager GM;

public int GraphicsWidth
    {
        get
        {
            return GM.GraphicsDevice.Viewport.TitleSafeArea.Width;
        }
    }

И это говорит о том, что мне нужно использовать «новый» (инициализировать объект). Но я не знаю, как я могу сделать это из моего класса GameObject?

Пожалуйста, пожалуйста, пожалуйста, кто-нибудь может мне помочь с этим? Действительно ценится. Спасибо.

РЕДАКТИРОВАТЬ: Кто-нибудь, пожалуйста?

1 Ответ

0 голосов
/ 20 августа 2011

GraphicsDeviceManager создается в вашем классе Game1.Скорее всего, вы также создаете экземпляр своего gameObject в своем классе Game1.Когда вы создаете экземпляр вашего gameObject, передайте ссылку на него graphicDeviceManager:

//somewhere in your game1 class:
GameObject gameObject = new GameObjec(Graphics);


//then, in and above the constructor of your GameObject:
GraphicsDeviveManager GM;
public GameObject(GraphicsDeviceManager gdm)
{
   GM = gdm;//GM is now available to the rest of the gameObj class.
}

или ... Сделайте то же, что и выше, но передайте Услуги, чтобы вы могли использовать все, что в них содержится.Или ... передайте ссылку на Game таким же образом.Я вижу, что многие люди делают это.Или ... Сделайте graphicsDeviceManager статическим, поскольку будет только один.

Я обычно передаю ссылку на контейнер службы, но большинство людей передают ссылку на игру.Некоторые люди передают ссылку только на метод в классе GameObject, который действительно нуждается в нем.

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