在另一个类中使用GraphicsDeviceManager

本文关键字:GraphicsDeviceManager 另一个 | 更新日期: 2023-09-27 18:27:36

我试图在不同于Game1类的类中使用GraphicsDeviceManager,无论我是否初始化它,它都会给我一个错误。这是我正在做的一个示例:

    public class ClassB : ClassC
    {
       GraphicsDeviceManager graphics;
       public ClassB()
       {
           graphics = new GraphicsDeviceManager(this);//This is where I am getting an error
       }
    }

它告诉我它无法将此类转换为Microsoft.Xna.Framework.Game.

在另一个类中使用GraphicsDeviceManager

您应该始终将Game1类中的Graphics Manager作为参数传递。

所以Game1.cs

GraphicsManager graphics;
ClassB classyclass = new Class(graphics);

以及新型

public class ClassB : ClassC
    {
       public ClassB(GraphicsManager graphics)
       { 
          //Use the Graphics stuff 
       }
    }

此外,我认为你会从使用GameComponents(GameComponents)中受益,它为你设置了大部分内容,并将Game1作为参数,这样你就可以做这样的事情:

((Game)Game1).graphics;

以便访问图形管理器。

希望这能帮助

如果您的类是从Game继承的,我认为GraphicsDeviceManager已经存在(可能会收到这样的错误消息),所以您不能再次声明它
您可以像在新类的构造函数中传递参数一样简单地传递它。或者,您可以只传递需要在该类中使用的成员。

关于"它"告诉我它不能将这个类转换为Microsoft.Xna.Framework.Game",您不能将ClassB传递为Game,如果您的类继承自Game,请尝试显式强制转换它。

相关文章:
  • 没有找到相关文章