1

C# + XNA で簡単なアチーブメント クラスを作成しようとしています。キューを実装して、複数のアチーブメントをすばやく取得したときに、後者がキュー リストに追加されるようにしたいと考えています。

特定の成果を得るために呼び出されるメソッドは次のとおりです。

//This is the list that I want to add the achievements to be queued to
static List<Achievement> queueList;

public void GetAchievement()
{
        //If the player hasn't got the achievement yet and another achievement is NOT being drawn, get the achievement
        if (!got && !drawing)
            get = true;
        //If the player hasn't got the achievement yet and another achievement IS being drawn, add the achievement to the queue list
        else if (!got && drawing)
            queueList.Add(); //What do I do here?
 }

したがって、これは次のように呼び出されます: exampleAchievement.GetAchievement(); exampleAchievement は Achievement クラスのオブジェクトです。

どのオブジェクトが GetAchievement() を呼び出しているかを知る方法がわからないので、queueList に何を追加すればよいかわかりません。

どんな助けでも大歓迎です!

〜ルカ

編集:私は使用しました:

queueList.Add(this);

しかし、私は愚かで、正しくテストしていなかったので、リストに何も追加されていないように見えました. とにかく助けてくれてありがとう:3

4

4 に答える 4

2

たとえば、あなたは探していexampleAchievementますか?

queueList.Add(this);// is this you're looking for?

何か不足していますか?

于 2013-10-14T13:30:51.137 に答える
1

thisインスタンスメソッドが呼び出されている現在のオブジェクトを参照する を求めているようです。

于 2013-10-14T13:30:43.100 に答える
0

ExampleAchievementがこのメソッドを基本クラスから取得している場合はAchievement、次のようにします。

queueList.Add(this);

のインスタンスがExampleAchievementキューに追加されます。ただし、それを使用する場合、取得する必要がある基本コントラクトに表示されない特別なプロパティがある場合は、何らかの形で型を確認する必要があります。

すべてのプロパティが単に子クラスのオーバーライド プロパティである場合は、それらにアクセスすると子の実装が返されるため、心配する必要はありません。

于 2013-10-14T13:30:47.803 に答える