C# 清除屏幕

C# 清除屏幕,c#,xna,C#,Xna,SomeClass.cs public void clearscreen() { main.GraphicsDevice.Clear(Color.Black); } 为什么我不能从另一个类调用这个方法来清除屏幕 protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); spriteBatch.Begin(); mainMenu.MenuDraw();

SomeClass.cs

public void clearscreen()
{
    main.GraphicsDevice.Clear(Color.Black);
}
为什么我不能从另一个类调用这个方法来清除屏幕

protected override void Draw(GameTime gameTime)
{
    GraphicsDevice.Clear(Color.Black);
    spriteBatch.Begin();
    mainMenu.MenuDraw();
    spriteBatch.Draw(cursorTexture, cursorPosition, Color.White);
    spriteBatch.End();
    base.Draw(gameTime);
}

正在从mainMenu.Draw()中调用clearscreen方法

在绘制方法中使用此选项:

protected override void Draw(GameTime cGameTime) 
{
        GraphicsDevice.SetRenderTarget(null); 
        GraphicsDevice.Clear(Color.Black); 
        ....
        ....
        ....

您需要将GraphicsDeviceManager(最有可能命名为“graphics”)传递给类并按原样调用它

graphics.GraphicsDevice.Clear(Color.Black);

如果将绘图方法重定向到另一个类,则仍然需要使用Game1.cs中声明的第一个graphicsDevice(新MonoGame项目的默认类名)。我的方法是创建另一个类,在静态公共访问中保存graphicsDevice引用。因此:

游戏1.cs:LoadContent

    spriteBatch = new SpriteBatch(GraphicsDevice);
    Memory.spriteBatch = spriteBatch;
Memory.cs:

class Memory
{
    //monogame

    public static GraphicsDeviceManager graphics;
    public static SpriteBatch spriteBatch;
现在在重定向类中,例如BattleModule.cs:

private static void DrawGeometry()
{
Memory.spriteBatch.GraphicsDevice.Clear(Color.Black);

在调用该方法之前,我已经在屏幕上绘制了一个图像。调用该方法后,图像仍在屏幕上。是否确实要在Draw(GameTime GameTime)方法中调用此方法。。你能给我们看看你的绘图方法代码吗。。??