Вам нужен graphicsDevice, но он может быть очень грязным для создания множества устройств GraphicsDevices и других вещей.Так что действительно простой способ передать значение всего, что вы хотите (например, ширину экрана) в вашей игре, - это создать «GlobalVariable», который вы можете использовать в ЛЮБОМ классе, который вы хотите.Вот как выполнить этот простой трюк.
Сначала создайте новый класс и назовите его GlobalClass. Вот так:
class GlobalClass
{
}
Теперь добавьте закрытую переменную с открытым способом доступа к ней.Здесь я создаю две переменные, одну для высоты экрана, а другую для ширины.
class GlobalClass
{
private static float screenWidth;
private static float screenHeight;
public static float ScreenWidth
{
get { return screenWidth; }
set { screenWidth = value; }
}
public static float ScreenHeight
{
get { return screenHeight; }
set { screenHeight = value; }
}
}
И все готово!С помощью этого класса вы можете передать эти две переменные в любом месте вокруг вашей игры.Итак, вернитесь к своему основному классу (game1.cs) и в обновленном методе обновите значение этих переменных с помощью высоты экрана и ширины экрана следующим образом:
GlobalClass.ScreenWidth = graphics.PreferredBackBufferWidth;
GlobalClass.ScreenHeight = graphics.PreferredBackBufferHeight;
, теперь вернитесь к своему пользовательскому классу и замените вашкод этого:
int TextureHeight = GlobalClass.ScreenWidth;
Готово, таким образом, вы можете передать любое значение в любом месте.Просто убедитесь, что вы обновляете GlobalClass.ScreenWidth перед использованием его значения.