XNA 4.0中的“预期类,委托,枚举,接口或结构”?

时间:2011-11-22 00:13:39

标签: xna-4.0

这是我的代码;

我在网上查了一下,但仍然无法修复它。

请给我一个固定版本的代码,非常感谢你!我一直盯着屏幕半个小时,仍然无法弄清楚这一点!

public class Game1 : Microsoft.Xna.Framework.Game
{

    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;
    Texture2D car1Texture;
    Vector2 car1Position = new Vector2(200f, 100f);    
    Texture2D background;        
    Rectangle mainFrame;



    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()
    {
        // TODO: Add your initialization logic here
        //Change the resolution to 800x600            
        graphics.PreferredBackBufferWidth = 1000;
        graphics.PreferredBackBufferHeight = 800;
        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 LoadContent()
    {
        // Create a new SpriteBatch, which can be used to draw textures.
        spriteBatch = new SpriteBatch(GraphicsDevice);
        // Load the background content.
        background = Content.Load<Texture2D>("roadscan");
        // Set the rectangle parameters
        mainFrame = new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height);

        spriteBatch = new SpriteBatch(GraphicsDevice);
        car1Texture = Content.Load<Texture2D>("car1");
    }

        // 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();

        if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            this.Exit();

        KeyboardState keyboard = Keyboard.GetState();
        GamePadState gamePad = GamePad.GetState(PlayerIndex.One);

        if (keyboard.IsKeyDown(Keys.Left) || gamePad.DPad.Left == ButtonState.Pressed)
        {
            ballPosition.X -= 3f;
        }

        if (keyboard.IsKeyDown(Keys.Right) || gamePad.DPad.Right == ButtonState.Pressed)
        {
            ballPosition.X += 3f;
        }

        if (keyboard.IsKeyDown(Keys.Up) || gamePad.DPad.Right == ButtonState.Pressed)
        { 
        ballPosition.Y += 3f;
        }

        if (keyboard.IsKeyDown(Keys.Down) || gamePad.DPad.Right == ButtonState.Pressed)
        {
        ballPosition.Y -= 3f;
        }

        // 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);
        // Draw the background.


        // Start building the sprite.
        spriteBatch.Begin();
        // Draw the background.
        spriteBatch.Draw(background, mainFrame, Color.White);
        // End building the sprite.
        spriteBatch.End();


        // TODO: Add your drawing code here

        base.Draw(gameTime);
    }
}

2 个答案:

答案 0 :(得分:0)

删除UnloadContent方法

上方的额外大括号

就在这里:

     // TODO: use this.Content to load your game content here
}<-------Delete this guy!!!

    /// <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
    }

答案 1 :(得分:0)

你有一对多关闭花括号。

  protected override void LoadContent()
  {
    // snip
  }  //close method

    // TODO: use this.Content to load your game content here
}  //close class

你不小心将课程关闭了一半,只需取下花括号即可解决问题。当您没有缩小或删除默认注释块时,这很常见,因为在您了解了所有基本方法的作用后,它们会妨碍这些注释。