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