«Ожидаемый класс, делегат, перечисление, интерфейс или структура» в XNA 4.0? - PullRequest
0 голосов
/ 22 ноября 2011

Вот мой код;

Я посмотрел его в Интернете, но все еще не могу его исправить.

Пожалуйста, покажите мне исправленную версию кода, большое спасибо!Я полчаса смотрю на экран и до сих пор не могу понять!

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 голосов
/ 14 июня 2013

У вас есть один ко многим закрывающим фигурные скобки.

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

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

Вы случайно закрываете класс на полпути, просто удаление фигурной скобки исправит ситуацию.Это часто случается, когда вы не сжимали и не удаляли блоки комментариев по умолчанию, так как они имеют тенденцию мешать после того, как вы узнали, что делают все основные методы.

0 голосов
/ 22 ноября 2011

Удалите лишнюю скобку выше 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
    }
...