在另一个类中使用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.
您应该始终将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
,请尝试显式强制转换它。