2013-04-09 72 views
0

最近我正在開發一個簡單的安卓遊戲。對於得分部分,我有許多網站上的分享喜好是最好的保存高分。現在,如果我需要在我的遊戲中保存不同級別的高分,該怎麼辦?我想保存前三位得分手分數,每個級別...在Android遊戲中保存高分 - 共享首選項

+0

高分是爲特定的設備或世界各地的設備? – 2013-04-09 09:40:55

+3

問題在哪裏? – skywall 2013-04-09 09:42:56

回答

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); 

請注意,您可以將更多用戶的分數放入字符串數組中。如果您需要爲更多級別保存分數,則只需創建更多陣列即可。

從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); 

我假設你能夠轉換到intString,反之亦然。希望這種方式適合你。

+0

thnx ...它幫助我:) – Shashank 2013-04-12 05:20:31

+0

想除了我的答案? :) – Terry 2013-04-12 11:42:35

1

很多方法來你的分數保存到SharedPreference。全部取決於你的實施風格。

您可以簡單地使用putStringSet(key, String[])其中的關鍵將是水平和字符串[]的1ste,第2和3TH地方。

+0

做到了這個問題:) – Shashank 2013-04-12 05:21:02

-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(); 

,但你需要計算水平指數

成績獲得

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

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

嗯..但我認爲這不是你的問題最好的辦法:<

+0

在我的第一次嘗試中,我也以同樣的方式思考。但特里已經很好地解釋了它。 – Shashank 2013-04-12 05:24:19