如何在XNA 4.0上修复“找不到合适的方法来覆盖”错误?

时间:2011-11-14 20:39:58

标签: xna-4.0

我关注the road not taken tutorial,但收到No suitable mthod found to override错误。这是我的XNA项目:

代码

public class Game1 : Microsoft.Xna.Framework.Game
{
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;

    SpriteBatch mSpriteBatch;
    Texture2D mTrack;

    public Game1()
    {
        graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
    }

    /// <summary>
    /// Allows the game to perform any initialization it needs to before
    /// starting to run. This is where it can query for any required
    /// services and load any non-graphic related content. 
    /// Calling base.Initialize will enumerate through any components
    /// and initialize them as well.
    /// </summary>
    protected override void Initialize()
    {

        //Change the resolution to 800x600
        graphics.PreferredBackBufferWidth = 800;
        graphics.PreferredBackBufferHeight = 600;
        graphics.ApplyChanges();

        base.Initialize();
    }

    /// <summary>
    /// LoadContent will be called once per game and is the place to load
    /// all of your content.
    /// </summary>
    protected override void LoadGraphicsContent(bool loadAllContent)
    {
        if (loadAllContent)
        {
            //Create the SpriteBatch used for drawing the Sprites
            mSpriteBatch = new SpriteBatch(graphics.GraphicsDevice);

            //Load the images from computer into the Texture2D objects
            mTrack = Content.Load<Texture2D>("Track");
        }
        // TODO: use this.Content to load your game content here
    }

    /// <summary>
    /// UnloadContent will be called once per game and is the place to unload
    /// all content.
    /// </summary>
    protected override void UnloadContent()
    {
        // TODO: Unload any non ContentManager content here
    }

    /// <summary>
    /// Allows the game to run logic such as updating the world,
    /// checking for collisions, gathering input, and playing audio.
    /// </summary>
    /// <param name="gameTime">Provides a snapshot of timing values.</param>
    protected override void Update(GameTime gameTime)
    {
        // Allows the game to exit
        if (GamePad.GetState(PlayerIndex.One).Buttons.Back 
             == ButtonState.Pressed)
            this.Exit();

        // TODO: Add your update logic here

        base.Update(gameTime);
    }

    /// <summary>
    /// This is called when the game should draw itself.
    /// </summary>
    /// <param name="gameTime">Provides a snapshot of timing values.</param>
    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);

        // TODO: Add your drawing code here

        mSpriteBatch.Begin();

        mSpriteBatch.Draw(mTrack, 
                          new Rectangle(0, 0, mTrack.Width, mTrack.Height),
                          Color.White);

        mSpriteBatch.End();

        base.Draw(gameTime);
    }
  }
}

错误

TheRoadNotTaken.Game1.LoadGraphicsContent(bool)': no suitable method found to override

如何解决此错误?

1 个答案:

答案 0 :(得分:2)

我认为LoadGraphicsContent已被弃用。您需要覆盖LoadContent()而不是LoadGraphicsContent(bool loadAllContent)

如果该教程适用于4.0,那么它使用过时的信息。以下是MSDN:http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.loadgraphicscontent(v=xnagamestudio.31).aspx