最近我正在开发一个简单的安卓游戏。对于评分部分,我在很多网站上分享的偏好最好保存高分。现在,如果我需要在游戏中保存不同关卡的高分怎么办?我希望保存每个级别的前三名得分手...
问问题
6252 次
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);
请注意,您可以将更多用户的分数放入字符串数组中。如果您需要为更多级别保存分数,您只需创建更多数组。
要从 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[])
where 作为关键级别,而 String[] 是第 1、第 2 和第 3 位。
于 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 回答