2017-03-04 52 views
-2

我正在嘗試創建一個關於Suubtraction的Android應用程序遊戲。在主屏幕中,您可以看到三個按鈕「播放選項」和「退出」。如果我點擊播放,它將進入主屏幕或播放區域..您可以通過單擊播放屏幕上的菜單按鈕返回到主屏幕..在單擊菜單按鈕後,播放按鈕將消失並繼續按鈕新遊戲按鈕將出現..遊戲的特點是,我們有一個計時器..如果你在播放屏幕遊戲自動開始..你有三條生命。如果時間用完了,你就失去了生命......如果你得到了錯誤的答案,你就失去了生命......如果你失去了所有的生命,遊戲就結束了,並且會彈出一個對話框,他們想再次嘗試或不。答案是輸入型...我的問題是,我有一個很難同步在簡歷和新的遊戲..Can有人生活幫我在簡歷和新遊戲中同步生活的代碼

EditText edit; 
TextView first; 
TextView second; 
CountDownTimer countDownTimer; 
TextView time; 
TextView lvl; 
TextView scored; 
public static int linked = 0; 
public static int resumelevel; 
public static int resumescore; 
public static int randomnumber1; 
public static int randomnumber2; 
public static int resumelife; 
public static int level2resume; 
public static int resumestatus; 
public static int one; 
public static int two; 
public static int scoring =0; 
public static int leveling =0; 
public static int level2 = 1; 
public static int rand1 = 3; 
public static int rand2 =3; 
public static int life =0; 
public static int status =0; 
public int g1,g2,ans; 

public static MediaPlayer mediaPlayer; 
public static int what = 0; 
public static int bkgchecked = 0; 
private int length = 0 ; 
public static MediaPlayer wrong; 
@Override 
public void onBackPressed() { 
    if (mediaPlayer != null) { 
     try { 
      mediaPlayer.stop(); 
      mediaPlayer.release(); 
     } finally { 
      mediaPlayer = null; 
     } 
    } 
    length = 0; 
    bkgchecked =0; 
    MainActivity.maintoplay = 1; 
    Intent intent1= new Intent(MainScreen.this, MainActivity.class); 
    startActivity(intent1); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_screen); 
    mediaPlayer = MediaPlayer.create(this, R.raw.happy); 
    wrong = MediaPlayer.create(this, R.raw.wrong); 
    if (linked == 1){ 
     scoring = resumescore; 
     leveling = resumelevel; 
     rand1 = randomnumber1; 
     rand2 = randomnumber2; 
     status = resumestatus; 
     level2 = level2resume; 
     life = resumelife; 
     linked =0; 
    } 
    if(life == 0){ 
     if (status == 0) { 
      if (scoring ==0) { 
       leveling = 1; 
       level2 = 1; 
       rand1 = 3; 
       rand2 = 3; 
       life = 0; 
       status = 0; 
       scoring =0; 
      } 
     } 
    } 
    if(life == 1) { 
     findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
     life =1; 
    } 
    if(life == 2){ 
     findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
     findViewById(R.id.img_2).setVisibility(View.INVISIBLE); 
     life =2; 
    } 
    first = (TextView) findViewById(R.id.Num1); 
    second = (TextView) findViewById(R.id.Num2); 
    edit = (EditText) findViewById(R.id.answer); 
    time = (TextView) findViewById(R.id.timer); 
    lvl = (TextView) findViewById(R.id.level); 
    String ll = String.valueOf(leveling); 
    lvl.setText(ll); 
    scored = (TextView) findViewById(R.id.score); 
    String sc = String.valueOf(scoring); 
    scored.setText(sc); 
    Random rand = new Random(); 
    one = rand.nextInt(rand1) + 1; 
    two = rand.nextInt(rand2) + 1; 
    if (one >= two){ 
     String myString = String.valueOf(one); 
     String myString1 = String.valueOf(two); 
     first.setText(myString); 
     second.setText(myString1); 
    }else{ 
     String myString = String.valueOf(two); 
     String myString1 = String.valueOf(one); 
     first.setText(myString); 
     second.setText(myString1); 
    } 
    countDownTimer = new CountDownTimer(11 * 1000, 1000) { 
     @Override 
     public void onTick(long millisUntilfinished) { 

      time.setText("" + millisUntilfinished/1000); 
     } 
     @Override 
     public void onFinish() { 
       life = life+1; 
      if (life == 1) { 
       findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
         countDownTimer.start(); 
      } 
      if(life == 2) { 
       findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
       findViewById(R.id.img_2).setVisibility(View.INVISIBLE); 
       countDownTimer.start(); 
      } 
      if (life == 3){ 
       MainActivity.linken=0; 
       linked =0; 
       leveling =1; 
       level2 = 1; 
       rand1 = 3; 
       rand2 =3; 
       status =0; 
       resumescore =0; 
       resumelevel = 1; 
       randomnumber1 = 3; 
       randomnumber2 = 3; 
       resumestatus = 0; 
       level2resume = 1; 
       resumelife = 0; 
       linked =0; 
       countDownTimer.cancel(); 
       findViewById(R.id.img_1).setVisibility(View.INVISIBLE); 
       findViewById(R.id.img_2).setVisibility(View.INVISIBLE); 
       findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
       AlertDialog.Builder builder = new AlertDialog.Builder(MainScreen.this); 
       builder.setMessage("GAME OVER                  Your Score is :"+scoring); 
       builder.setCancelable(false); 
       builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         MainActivity.maintoplay = 0; 
         if (mediaPlayer != null) { 
          try { 
           mediaPlayer.stop(); 
           mediaPlayer.release(); 
          } finally { 
           mediaPlayer = null; 
          } 
         } 
         scoring =0; 
         leveling =1; 
         level2 = 1; 
         rand1 = 3; 
         rand2 =3; 
         life =0; 
         status =0; 
         length = 0; 
         bkgchecked =0; 
         startActivity(new Intent(MainScreen.this, MainActivity.class)); 
        } 
       }); 
       builder.setNegativeButton("Try Again", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         if (mediaPlayer != null) { 
          try { 
           mediaPlayer.stop(); 
           mediaPlayer.release(); 
          } finally { 
           mediaPlayer = null; 
          } 
         } 
         scoring =0; 
         leveling =1; 
         level2 = 1; 
         rand1 = 3; 
         rand2 =3; 
         life =0; 
         status =0; 
         length = 0; 
         bkgchecked =0; 
         startActivity(new Intent(MainScreen.this, MainScreen.class)); 
        } 
       }); 
       AlertDialog alert = builder.create(); 
       alert.show(); 
      } 
     } 
    }; 
    countDownTimer.start(); 
    if (bkgchecked == 0){ 
     findViewById(R.id.btn_onPlay).setVisibility(View.INVISIBLE); 
     findViewById(R.id.btn_offPlay).setVisibility(View.VISIBLE); 
    } 
    Button clickmenu = (Button)findViewById(R.id.btn_Menu_Main_Screen); 
    clickmenu.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      // use Intent 
      if (mediaPlayer != null) { 
       try { 
        mediaPlayer.stop(); 
        mediaPlayer.release(); 
       } finally { 
        mediaPlayer = null; 
       } 
      } 
      resumelevel = Integer.parseInt(lvl.getText().toString()); 
      resumescore = Integer.parseInt(scored.getText().toString()); 
      resumestatus =status; 
      randomnumber1 =rand1; 
      randomnumber2 = rand2; 
      resumelife =life; 
      level2resume =level2; 
      length = 0; 
      bkgchecked =0; 
      linked =0; 
      MainActivity.maintoplay = 1; 
      Intent intent1= new Intent(MainScreen.this, MainActivity.class); 
      startActivity(intent1); 
     } 
    }); 

    Button clickon = (Button) findViewById(R.id.btn_onPlay); 
    clickon.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // use Intent 
      if (bkgchecked == 1) { 
       bkgchecked = 0; 
       mediaPlayer.pause(); 
       length = mediaPlayer.getCurrentPosition(); 
       View b = findViewById(R.id.btn_offPlay); 
       b.setVisibility(View.VISIBLE); 
       View ba = findViewById(R.id.btn_onPlay); 
       ba.setVisibility(View.INVISIBLE); 
       what = 1; 
      } 
     } 
    }); 
    Button clicksubmit = (Button) findViewById(R.id.btn_submit); 
    clicksubmit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // use Intent 
      if ((edit.getText().toString()).isEmpty()== false) { 
       g1 = Integer.parseInt(first.getText().toString()); 
       g2 = Integer.parseInt(second.getText().toString()); 
       ans = Integer.parseInt(edit.getText().toString()); 
       int rans = g1 - g2; 
       if (rans == ans) { 
        CountDownTimer image = new CountDownTimer(2*500,500) { 
         @Override 
         public void onTick(long millisUntilFinished) { 
          findViewById(R.id.imagecorrect).setVisibility(View.VISIBLE); 
         } 

         @Override 
         public void onFinish() { 
          findViewById(R.id.imagecorrect).setVisibility(View.INVISIBLE); 
         } 
        }; 
        image.start(); 
        Random rand = new Random(); 
        one = rand.nextInt(rand1) + 1; 
        two = rand.nextInt(rand2) + 1; 
        if (one >= two) { 
         String myString = String.valueOf(one); 
         String myString1 = String.valueOf(two); 
         first.setText(myString); 
         second.setText(myString1); 
        } else { 
         String myString = String.valueOf(two); 
         String myString1 = String.valueOf(one); 
         first.setText(myString); 
         second.setText(myString1); 
        } 
        countDownTimer.cancel(); 
        countDownTimer.start(); 
        status = status + 1; 
        scoring = scoring + 10; 
        String scores = String.valueOf(scoring); 
        scored.setText(scores); 
        if (status == 10) { 
         leveling = leveling + 1; 
         level2 = 2; 
         String levl = String.valueOf(leveling); 
         lvl.setText(levl); 
        } 
        if (level2 == 2) { 
         rand1 = rand1 + 1; 
         rand2 = rand2 + 1; 
         status = 1; 
         level2 = 1; 
        } 
       } else { 
        final CountDownTimer images = new CountDownTimer(2*500,500) { 
         @Override 
         public void onTick(long millisUntilFinished) { 
          findViewById(R.id.imagewrong).setVisibility(View.VISIBLE); 
         } 

         @Override 
         public void onFinish() { 
          findViewById(R.id.imagewrong).setVisibility(View.INVISIBLE); 
         } 
        }; 
        images.start(); 
        life= life +1; 
        if (life == 1) { 
         findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
         countDownTimer.start(); 

        } 
        if (life == 2) { 
         findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
         findViewById(R.id.img_2).setVisibility(View.INVISIBLE); 
         countDownTimer.start(); 

        } 
        if(life == 3){ 
         MainActivity.linken=0; 
         linked =0; 
         leveling =1; 
         level2 = 1; 
         rand1 = 3; 
         rand2 =3; 
         status =0; 
         linked =0; 
         resumescore =0; 
         resumelevel = 1; 
         randomnumber1 = 3; 
         randomnumber2 = 3; 
         resumestatus = 0; 
         level2resume = 1; 
         resumelife = 0; 
         countDownTimer.cancel(); 
         findViewById(R.id.img_1).setVisibility(View.INVISIBLE); 
         findViewById(R.id.img_2).setVisibility(View.INVISIBLE); 
         findViewById(R.id.img_3).setVisibility(View.INVISIBLE); 
         AlertDialog.Builder builder = new AlertDialog.Builder(MainScreen.this); 
         builder.setMessage("GAME OVER                  Your Score is :"+scoring); 
         builder.setCancelable(false); 
         builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which) { 
           if (mediaPlayer != null) { 
            try { 
             mediaPlayer.stop(); 
             mediaPlayer.release(); 
            } finally { 
             mediaPlayer = null; 
            } 
           } 
           scoring =0; 
           leveling =1; 
           level2 = 1; 
           rand1 = 3; 
           rand2 =3; 
           life =0; 
           status =0; 
           length = 0; 
           bkgchecked = 0; 
           MainActivity.maintoplay = 0; 
           startActivity(new Intent(MainScreen.this, MainActivity.class)); 
          } 
         }); 
         builder.setNegativeButton("Try Again", new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int id) { 
           if (mediaPlayer != null) { 
            try { 
             mediaPlayer.stop(); 
             mediaPlayer.release(); 
            } finally { 
             mediaPlayer = null; 
            } 
           } 
           scoring =0; 
           leveling =1; 
           level2 = 1; 
           rand1 = 3; 
           rand2 =3; 
           life =0; 
           status =0; 
           startActivity(new Intent(MainScreen.this, MainScreen.class)); 
          } 
         }); 
         AlertDialog alert = builder.create(); 
         alert.show(); 
        } 
       } 
       edit.setText(""); 
      }else{ 
       AlertDialog.Builder builder = new AlertDialog.Builder(MainScreen.this); 
       builder.setMessage("PLEASE ENTER A NUMBER"); 
       builder.setCancelable(false); 
       builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.cancel(); 
         countDownTimer.start(); 
        } 
       }); 
       AlertDialog alert = builder.create(); 
       alert.show(); 
      } 
     } 
     }); 




    Button clickoff = (Button)findViewById(R.id.btn_offPlay); 
    clickoff.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      // use Intent 
      if(bkgchecked == 0) { 
       if (length != 0) { 
        if (mediaPlayer.isPlaying() == false) { 
         mediaPlayer.seekTo(length); 
         mediaPlayer.start(); 
         View b = findViewById(R.id.btn_onPlay); 
         b.setVisibility(View.VISIBLE); 
         View ba = findViewById(R.id.btn_offPlay); 
         ba.setVisibility(View.INVISIBLE); 
         bkgchecked = 1; 
         what = 1; 
        } 
       }else{ 
        mediaPlayer.setLooping(true); 
        mediaPlayer.setVolume(100, 100); 
        mediaPlayer.start(); 
        View b = findViewById(R.id.btn_onPlay); 
        b.setVisibility(View.VISIBLE); 
        View ba = findViewById(R.id.btn_offPlay); 
        ba.setVisibility(View.INVISIBLE); 
        bkgchecked = 1; 
        what = 1; 
       } 
      } 
     } 
    }); 
} 

}

回答

0

Android application lifecycle

基本上,您需要將用戶離開活動時調用的onPause()方法中的生命數保存起來,如:

@Override 
public void onPause() { 
super.onPause(); 

lives = your_lives_method(); 

} 

現在,您可以編輯onResume()方法使用lives變量,找出生活中的用戶有一樣的號碼:

@Override 
public void onResume() { 
super.onResume(); // Always call the superclass method first 

main_lives = lives; 

} 
+0

什麼的時候,如果我點擊了新的遊戲,而不是發生恢復按鈕?這種方法是否還會運行正確..所以生命仍然會有現在的價值..所以在新遊戲中的生活中可能會出現問題? –

+0

你必須有一個初始化新遊戲的方法。在'onCreate()'中調用該方法。您可以使用'boolean'變量來檢查遊戲是否在'onResume()'中第一次運行,只要在新遊戲運行時將其設置爲true。 –

+0

你能告訴我如何知道遊戲是否第一次運行? –