Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c访问monogame中其他类中的GraphicsDevicemager#_C#_Fullscreen_Monogame - Fatal编程技术网

C# 使用c访问monogame中其他类中的GraphicsDevicemager#

C# 使用c访问monogame中其他类中的GraphicsDevicemager#,c#,fullscreen,monogame,C#,Fullscreen,Monogame,我用c#为我的单打游戏制作了一个选项菜单。 这是我的类的一部分,带有initialize函数。 我想在一个窗口屏幕上初始化游戏。这很好用。 现在我希望我可以在我的选项中将窗口屏幕更改为全屏。 我如何访问图形设备管理器,它是否正常工作 我在写作时有访问权限 Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600; Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferHeight = 9

我用c#为我的单打游戏制作了一个选项菜单。 这是我的类的一部分,带有initialize函数。 我想在一个窗口屏幕上初始化游戏。这很好用。 现在我希望我可以在我的选项中将窗口屏幕更改为全屏。 我如何访问图形设备管理器,它是否正常工作

我在写作时有访问权限

Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600;
Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferHeight = 900;
但是我得到了错误CS0120 C#非静态字段、方法或属性需要对象引用。 我不知道怎么处理

namespace Game1.Game
{
    internal class Game1 : Microsoft.Xna.Framework.Game
    {
        private InputManager mInput;
        private ScreenManager mScreenManager;
        public GraphicsDeviceManager mGraphicsDeviceMgr;
        private bool mEscapeDown;

        public Game1()
        {
            mGraphicsDeviceMgr = new GraphicsDeviceManager(this);

            Content.RootDirectory = "Content";
            mEscapeDown = false;
        }
        protected override void Initialize()
        {

            IsMouseVisible = true;
            mGraphicsDeviceMgr.ApplyChanges();

            // GameEngine
            mInput = new InputManager();
            mScreenManager = new ScreenManager(mGraphicsDeviceMgr, Content, mInput);
            SoundManager.InitializeContent(Content);

            base.Initialize();
然后我有一个MainMenuScreen类:

public sealed class MainMenuScreen : Screen
    {
        private readonly ScreenManager mScreenManager;
        private readonly List<Button> mButtons;
        private int mStatistic;
        private readonly InputManager mInput;
[...]
private void ButtonOptions()
        {
            OptionScreen optionScreen = new OptionScreen(mScreenManager, mInput);
            mScreenManager.AddScreen(optionScreen);
            optionScreen.AddLabel("Options:");

            optionScreen.AddButton("Fullscreen",ButtonFullScreen);
            optionScreen.AddButton("Back", ButtonBack);
        }
private void ButtonFullScreen()
        {
            mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600;
            mGraphicsDeviceMgr.PreferredBackBufferHeight = 900;
        }
公共密封类主菜单屏幕:屏幕
{
私有只读屏幕管理器mScreenManager;
私有只读列表;
私人内部统计;
私有只读输入管理器mInput;
[...]
私有void按钮选项()
{
选项屏幕选项屏幕=新选项屏幕(mScreenManager,mInput);
mScreenManager.AddScreen(选项屏幕);
选项屏幕。添加标签(“选项:”);
选项屏幕。添加按钮(“全屏”,按钮全屏);
选项屏幕上。添加按钮(“后退”,按钮后退);
}
私有void按钮fullscreen()
{
MgraphicDeviceMgr.PreferredBackBufferWidth=1600;
MgraphicDeviceMgr.PreferredBackBufferHeight=900;
}

因为只有一个
设备管理器
。 将其设置为静态:

public static GraphicsDeviceManager mGraphicsDeviceMgr;

这将允许从项目中的任何位置访问
mGraphicsDeviceMgr
变量:

 Game1.mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600;
 Game1.mGraphicsDeviceMgr.PreferredBackBufferHeight = 900;
由于您选择了特定的名称空间“Game1.Game”,为了完整起见,需要将行更改为完全限定的名称:

 Game1.Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600;
 Game1.Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferHeight = 900;

因为只有一个
设备管理器
。 将其设置为静态:

public static GraphicsDeviceManager mGraphicsDeviceMgr;

这将允许从项目中的任何位置访问
mGraphicsDeviceMgr
变量:

 Game1.mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600;
 Game1.mGraphicsDeviceMgr.PreferredBackBufferHeight = 900;
由于您选择了特定的名称空间“Game1.Game”,为了完整起见,需要将行更改为完全限定的名称:

 Game1.Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferWidth = 1600;
 Game1.Game.Game1.mGraphicsDeviceMgr.PreferredBackBufferHeight = 900;