-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;
}
}
}
});
}
}
什麼的時候,如果我點擊了新的遊戲,而不是發生恢復按鈕?這種方法是否還會運行正確..所以生命仍然會有現在的價值..所以在新遊戲中的生活中可能會出現問題? –
你必須有一個初始化新遊戲的方法。在'onCreate()'中調用該方法。您可以使用'boolean'變量來檢查遊戲是否在'onResume()'中第一次運行,只要在新遊戲運行時將其設置爲true。 –
你能告訴我如何知道遊戲是否第一次運行? –