0

各レベルの敵の数を格納する Levels クラスを作成しました。Levels クラスは、新しいレベルを開始する前に一度呼び出されます。たとえば、プレイヤーがゲーム メニューでレベル 1 を選択した場合、5 つのゾンビ、3 つのクモ、1 つの狼男が (別のクラスで) 描画されます。しかし、今のところ、常に次のエラー メッセージが表示されます。メソッドには戻り値の型が必要です。
なにが問題ですか ?

public class Levels
{
    int currentLevel, Zombies, Spiders, Werewolfs;

    public Levels(int Level)
    {
        this.currentLevel = Level;
    }

     public Level1()
    {
        Zombies = 5;
        Spiders = 3;
        Werewolfs = 1;
    }

     public Level2()
    {
        Zombies = 8;
        Spiders = 4;
        Werewolfs = 2;
    }

     public Level3()
    {
        Zombies = 12;
        Spiders = 4;
        Werewolfs = 3;
    }

    public void Load(ContentManager content)
    {
     if (currentLevel == 1)
       Level1();

     if (currentLevel == 2)
       Level2();

     if (currentLevel == 3)
       Level3();   
    }
}
4

2 に答える 2

5

Level1()、Level2() などには、void などの戻り値の型が必要です。それらはコンストラクターではなくメソッドです。

于 2012-10-21T21:19:03.687 に答える
2

関数から何も返していません。関数に注意してください。Load()宣言されているため、public void何も意味しないか、その関数から「void」が返されます。これらの関数から何も返さない場合はvoid、宣言に含めます。もしそうなら、次のようにしてください:

public int Level1()
{
    int Zombies = 5;
    return Zombies;
}

注: 関数は 1 つのオブジェクトのみを返すことができます。

私は適切な c# 構文を知らないので、これは間違っているかもしれませんが、概念は同じです。

これらの関数から何かを返したくない場合は、それらを として宣言しvoid、「敵」のグローバル変数を設定してから、メソッド (関数) を使用してグローバル変数を変更します。

于 2012-10-21T21:25:14.240 に答える