0

我在cocos2d-android游戏应用中设置了一些条件,如果条件=0,当前gamelayers分数会在Gameover.class中显示为高分,但是这里当条件变为零时,我无法获得下一层(Gameover.class) 显示高分和保存玩家姓名的选项。

if (Counter<=0)
                {

                    Intent mainScore = new Intent(CCDirector
                            .sharedDirector().getActivity(), GameOver.class);
                    mainScore.putExtra("totalscore", countScore);
                    CCDirector.sharedDirector().getActivity()
                            .startActivity(mainScore);
                        System.out.println("intent");
                    CCDirector.sharedDirector().getActivity().finish();
                 }

我已经使用了上面的代码,打印语句没有得到,我猜这行CCDirector.sharedDirector().getActivity() .startActivity(mainScore);有问题,请问有人可以解决这个问题吗?

这是 Gameover.class

公共类 GameOver 扩展 BaseActivity {

ImageView playagain, home;
String[] columns;
int Score = 0;
String TOTALSCORE = "score";
String PLAYERNAME = "playername";

SQLiteDatabase db;

SharedPreferences sharedPreference = CCDirector.sharedDirector()
        .getActivity().getSharedPreferences("sharedPreference", 0);

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.gameover);

    int totalscore = getIntent().getIntExtra("totalscore", -1);
    SharedPreferences sharedPreference = CCDirector.sharedDirector()
            .getActivity().getSharedPreferences("sharedPreference", 0);
    long temp_totalscore = (long) totalscore;
    try {
        String bp_totalscore = sharedPreference.getString(TOTALSCORE, null);
        String bp_playername = sharedPreference.getString(PLAYERNAME, null);
        if (totalscore > Integer.parseInt(bp_totalscore)) {

            showSettingsDialog(temp_totalscore);

        }

    } catch (Exception e) {
        showSettingsDialog(temp_totalscore);
    }

    intiatizeviews();
    viewlisteners();

}

private void showSettingsDialog(long totalscore) {
    EnterHighscore dialog = new EnterHighscore(this, totalscore);

    dialog.show();

}
4

1 回答 1

0

你是gameover.class 一项活动吗?我想不是。因为它不是一个活动,而是 cocos2d 中的一个场景。用这个替换你的代码。

CCScene scene=GameOver.scene(); 
    CCDirector.sharedDirector().replaceScene(scene);
于 2013-08-02T12:44:28.343 回答