0

XNA フレームワークを使用して C# でプログラミングすることから始めました。新しいソリューションを作成し、プログラムを作成し、保存しました。プログラムは機能していて、どこにもエラーはありませんでした。ソリューションを開いた2日目に、1つのファイルに多くのエラーがありました。コードは問題ないようですが、コメントにエラーがあります。

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using The_Destiny_of_Azureus.Komponenty;

namespace The_Destiny_of_Azureus
{

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

    public int wwidth = 1366;
    public int wheight = 768;

    Texture2D cursor;

    MouseState mouseState;

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


    protected override void Initialize()
    {
        graphics.PreferredBackBufferWidth = wwidth;
        graphics.PreferredBackBufferHeight = wheight;
        graphics.IsFullScreen = false;
        graphics.ApplyChanges();

        MMenu mmenu = new MMenu(this);
        Components.Add(mmenu);           //1 error: } expected


        public Button ngbutton = new Button(this, new Vector2(64, 258), "NEW GAME");     // Keyword 'this' is not available in the current context
        Components.Add(ngbutton);       //3 errors:
                                                     //Invalid token '(' in class, struct, or interface member declaration, 
                                                     //Invalid token ')' in class, struct, or interface member declaration
                                                     //Microsoft.XNA.Framework.Game.Components is a property but is used like a type

        base.Initialize();                       //1 error: Method must have a return type
    }


    protected override void LoadContent()     //1 error: Expected class, delegate, enum, interface, or struct
    {

        spriteBatch = new SpriteBatch(GraphicsDevice);      //1 error: Expected class, delegate, enum, interface, or struct

        cursor = Content.Load<Texture2D>(@"Textury\cursor");
    }


    protected override void UnloadContent()            //1 error: Expected class, delegate, enum, interface, or struct
    {

    }


    protected override void Update(GameTime gameTime)        //1 error: Expected class, delegate, enum, interface, or struct
    {

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


        mouseState = Mouse.GetState();

        base.Update(gameTime);
    }


    protected override void Draw(GameTime gameTime)           //1 error: Expected class, delegate, enum, interface, or struct
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);

        spriteBatch.Begin();
        spriteBatch.Draw(cursor, new Vector2(mouseState.X, mouseState.Y), Color.White);      //1 chyba: Expected class, delegate, enum, interface, or struct
        spriteBatch.End(); 

        base.Draw(gameTime);
    }              //1 error: Type or namespace definition, or end-of-file expected
}
}

エラー:

Error   } expected  44  35
Error   Invalid token '(' in class, struct, or interface member declaration 47  27
Error   Invalid token ')' in class, struct, or interface member declaration 47  36
Error   Method must have a return type  49  18
Error   Expected class, delegate, enum, interface, or struct    53  28
Error   Expected class, delegate, enum, interface, or struct    56  31
Error   Expected class, delegate, enum, interface, or struct    62  28
Error   Expected class, delegate, enum, interface, or struct    68  28
Error   Expected class, delegate, enum, interface, or struct    81  28
Error   Expected class, delegate, enum, interface, or struct    86  42
Error   Type or namespace definition, or end-of-file expected   90  9
Error   Keyword 'this' is not available in the current context  46  49
Error   'Microsoft.Xna.Framework.Game.Components' is a 'property' but is used like a 'type' 47  13
Error   'The_Destiny_of_Azureus.Hra.ngbutton' is a 'field' but is used like a 'type'    47  28

ソリューション全体を友人に送信しようとしましたが、彼はソリューションを開いて、このファイルにエラーはありませんでした。

4

2 に答える 2

8

あなたの問題はここにあります:

Components.Add(mmenu);           //1 error: } expected


public Button ngbutton = new Button(this, new Vector2(64, 258), "NEW GAME");     // Keyword 'this' is not available in the current context
Components.Add(ngbutton);       //3 errors:

publicキーワードがローカル変数に対して無効です。クラスのメンバー定義からそれをコピーして貼り付けたか、public誤って追加しただけです。

一連のエラーは、コンパイラが a}を終了Initializeに失敗し、残りのブレースが外れたと判断したことに起因します。

あなたの同僚がその正確なコードを持っていて、それをビルドする方法はありません。

于 2013-03-11T14:30:26.900 に答える
3

エラーは完全に正しいです。

publicローカル変数を持つことは意味がありません。

したがって、コンパイラは、クラスにフィールドを作成しようとしたが、}.
これにより、余分な}.

于 2013-03-11T14:29:55.597 に答える