getDefaultSharedPreferences循环计算Highscores的问题

时间:2014-04-20 15:57:15

标签: java android loops opengl-es sharedpreferences

我尝试使用SharedPreferences来存储我的高分。每当我的关卡结束时,它会通过发送高分和上下文来调用此类。

要计算得分的位置,我会根据共享首选项中的得分(总计6)检查得分

我的问题,当我有一个高分时,(nr 1.)它会自动将相同的分数复制到第二,第三,第四等等。这不是我发生的事情的逻辑。它应该首先设置变量的值,然后在我的循环中使用这些变量吗? 以下陈述仅在高分为1分时才有。其他陈述实际上是相同的。

分数课程,将从我的游戏课程中调用

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;



public class Scores  {


private SharedPreferences mSharedPrefs;


public  void input(int i,Context a){

 int first=0;
  int second=0;
  int third=0;
  int fourth=0;
  int fifth=0;
  int sixth=0;



mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(a);

sixth=mSharedPrefs.getInt("scoresixth",0);
fifth=mSharedPrefs.getInt("scorefifth",0);  
fourth= mSharedPrefs.getInt("scorefourth",0);
third=mSharedPrefs.getInt("scorethird",0);
second=mSharedPrefs.getInt("scoresecond",0);
first = mSharedPrefs.getInt("scorefirst",0);



if (i>=first){
     SharedPreferences.Editor editor = mSharedPrefs.edit();


     editor.putInt("scoresixth",fifth);

     editor.putInt("scorefifth",fourth);

     editor.putInt("scorefourth",5);

     editor.putInt("scorethird",second);

     editor.putInt("scoresecond",first);

     editor.putInt("scorefirst",i);

      editor.commit();



}

}

现在我的游戏课程中我称之为分数:

public class LevelOne extends GLGame {

    public Screen getStartScreen() {



    return new GameScreen(this);
    }
     class GameScreen extends Screen {
  Scores scorein=new Scores();     ...

 ...     if(score>1499){
          Assets.font.drawText(batchertwo, "    WINNER!!", -200,((1-9/0.4f)/1.5f)*dim);
            win=true;
           scorein.input(score, getApplicationContext());

编辑:我从OpenGL屏幕调用该类。不确定这是否会影响任何

上面的问题解决了:  我将这个分数类称为OpenGL屏幕。具有OpenGL屏幕的是它不断更新屏幕,因此继续使用所有这些更新调用得分输入法。 这就是为什么我在各个位置看到我的高分。

我只需在OpenGL中创建一个布尔值,在执行一次时将其设置为false / true。无需担心其他更新。它的工作前所未有。

0 个答案:

没有答案