我试图在与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。
答案 0 :(得分:1)
如果您的类是从Game
继承的,我认为GraphicsDeviceManager
已经存在,(可能您会收到类似的错误消息),因此您无法再次声明它。
您可以像在新类的构造函数中的参数一样传递它。或者您只能传递您需要在该类中使用的成员。
关于“它告诉我它无法将此类转换为Microsoft.Xna.Framework.Game
”,您无法将ClassB作为Game
传递,如果您的类继承自Game
,则尝试强制转换明确地说。
答案 1 :(得分:1)
您应始终在Game1类中使用图形管理器,而不是将管理器作为参数传递给它。
所以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;
以便您访问图形管理器。
希望这有帮助