0

最近、単純なアンドロイド ゲームを開発しています。スコアリングの部分については、多くのウェブサイトで、ハイスコアを保存するのに最適な設定を共有している. では、ゲームでさまざまなレベルのハイスコアを保存する必要がある場合はどうすればよいでしょうか? 各レベルの上位 3 人の得点者のスコアを保存したい...

4

3 に答える 3

3

スコアを保存するには、次のようにします。

// prepare the data: put the String values of the scores of the first 3 users
// in one String array for each level
String[] firstLevelHighscores = new String[] { 
    firstUserLevel1Score, secondUserLevel1Score, thirdUserLevel1Score 
};
String[] secondLevelHighscores = new String[] { 
    firstUserLevel2Score, secondUserLevel2Score, thirdUserLevel2Score 
};
String[] thirdLevelHighscores = new String[] { 
    firstUserLevel3Score, secondUserLevel3Score, thirdUserLevel3Score 
};

// now save them in SharedPreferences
SharedPreferences sharedPref = getSharedPreferences("LevelScores", 
        Context.MODE_PRIVATE);
Editor editor = sharedPref.edit();
editor.putStringSet("level1", firstLevelHighscores);
editor.putStringSet("level2", secondLevelHighscores);
editor.putStringSet("level3", thirdLevelHighscores);

さらに多くのユーザーのスコアを String 配列に入れることができることに注意してください。さらに多くのレベルのスコアを保存する必要がある場合は、配列をさらに作成するだけです。

保存されたデータを SharedPreferences から取得するには、次のようにします。

SharedPreferences sharedPref = getSharedPreferences("LevelScores", 
        Context.MODE_PRIVATE);
String[] firstLevelHighscores = sharedPref.getStringSet("level1", null);
String[] secondLevelHighscores = sharedPref.getStringSet("level2", null);
String[] thirdLevelHighscores = sharedPref.getStringSet("level3", null);

に変換したり、その逆に変換intしたりできると思います。Stringこのようにうまくいくことを願っています。

于 2013-04-09T10:03:34.327 に答える
1

スコアを に保存する方法はたくさんありますSharedPreference。すべて実装のスタイルに依存します。

putStringSet(key, String[])キーがレベルになり、String[] が 1 位、2 位、3 位になるので、単純に where を使用できます。

于 2013-04-09T09:43:48.840 に答える
-1

スコア設定

static final String[] LEVEL = {"level1","level2","level3"};

int bestScore1 = 100;
int bestScore2 = 90;
int bestScore3 = 80;

SharedPreferences sp = getSharedPreferences(LEVEL[0],Activity.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();

    editor.putInt("First", bestScore1);
    editor.putInt("Second", bestScore2);
    editor.putInt("Third", bestScore3);

    editor.commit();

ただし、LEVELのインデックスをカウントする必要があります

スコア取得

SharedPreferences sp = getSharedPreferences(LEVEL[0], Activity.MODE_PRIVATE);

    bestScore1 = sp.getInt("First", 0);
    bestScore2 = sp.getInt("Second", 0);
    bestScore3 = sp.getInt("Third", 0);

うーん..しかし、それはあなたの質問には最善の方法ではないと思います:<

于 2013-04-09T09:50:48.737 に答える