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方法答案 0 :(得分:2)
在Draw方法中使用它:
protected override void Draw(GameTime cGameTime)
{
GraphicsDevice.SetRenderTarget(null);
GraphicsDevice.Clear(Color.Black);
....
....
....
答案 1 :(得分:1)
你需要将你的GraphicsDeviceManager(最有可能名为'graphics')传递给类并调用它。
graphics.GraphicsDevice.Clear(Color.Black);
答案 2 :(得分:0)
如果将绘图方法重定向到另一个类,则仍需要使用Game1.cs中声明的第一个graphicsDevice(新MonoGame项目的默认类名)。我的方法是创建另一个类,该类将以静态公共访问方式保存graphicsDevice引用。因此:
Game1.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);