我在这个 Monogame class 中做错了什么?

What am I doing wrong in this Monogame class?

我在这个class中做错了什么?我正在使用 monogame 和 C#,但我的对象不会在程序中呈现。

class Player : Game
    {
        Texture2D PlayerSprite;
        Vector2 PlayerPosition;


        public Player()
        {
            Content.RootDirectory = "Content";
            PlayerSprite = Content.Load<Texture2D>("spr_Player");
            PlayerPosition = Vector2.Zero;
        }

        public void Update()
        {


        }

        public void Draw(SpriteBatch SpriteBatch)
        {
            SpriteBatch.Begin();
            SpriteBatch.Draw(PlayerSprite,PlayerPosition, new Rectangle(0, 0, 32,32), Color.White);
            SpriteBatch.End();
        }
    }
  • Load、Update 和 Draw 方法属于继承的 Game class 并被其覆盖。
  • 您也需要启动 SpriteBacth 对象。
  • GraphicsDevice 对象已存在于游戏主程序中 class。

试试这个:

class Player : Game
{
    Texture2D PlayerSprite;
    Vector2 PlayerPosition;
    SpriteBatch spriteBatch;

    public Player()
    {
        Content.RootDirectory = "Content";
        PlayerSprite = Content.Load<Texture2D>("spr_Player");
        PlayerPosition = Vector2.Zero;
    }

    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);
    }

    protected override void Update(GameTime gameTime)
    {
    }

    protected override void Draw(GameTime gameTime)
    {
        spriteBatch.Begin();
        spriteBatch.Draw(PlayerSprite,PlayerPosition, new Rectangle(0, 0, 32,32), Color.White);
        spriteBatch.End();
    }
}