点击开始游戏按钮后界面出现地鼠,出现20次地鼠后游戏结束
MainActivity.java
package com.example.task0322;
// 名字改一下
import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import java.lang.ref.WeakReference;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
public static final int MSG_CODE = 87987987;
public static final int MAX_NUMBER = 20;
public static final int RANDOM_NUMBER = 500;
private TextView result_View,cd_view;
private Button start_Btn;
private ImageView diglet_View;
private int totalCount,hitCount,steps,delayTime;
private int[][] position_Array;
private Handler handler = new Handler(){
@SuppressLint("HandlerLeak")
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case MSG_CODE:
if (totalCount > MAX_NUMBER){
clear();
Toast.makeText(MainActivity.this, "游戏结束", Toast.LENGTH_SHORT).show();
return;
}
int cc = MAX_NUMBER-totalCount;
cd_view.setText("已出现了"+totalCount+"只地鼠,还剩"+cc+"只地鼠");
steps = msg.arg1;
MainActivity.this.diglet_View.setX(MainActivity.this.position_Array[steps][0]);
MainActivity.this.diglet_View.setY(MainActivity.this.position_Array[steps][1]);
MainActivity.this.diglet_View.setVisibility(View.VISIBLE);
int randomTime = new Random().nextInt(RANDOM_NUMBER) + RANDOM_NUMBER;
MainActivity.this.code(randomTime);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initData() {
totalCount=0;
hitCount=0;
//地鼠位置
position_Array=new int[][]{
{123,446},{298,157},
{674,199},{485,677},
{396,987},{766,677},
{555,198},{198,555},
};
}
private void initView() {
result_View=findViewById(R.id.result_View);
start_Btn=findViewById(R.id.start_Btn);
diglet_View=findViewById(R.id.diglet_View);
cd_view= findViewById(R.id.cd_View);
}
public void myClick(View v) {
switch (v.getId()){
case R.id.start_Btn:
start_Btn.setText("游戏中");
start_Btn.setEnabled(false);
code(0);
break;
case R.id.diglet_View:
diglet_View.setVisibility(View.GONE);
hitCount++;
result_View.setText("已击中"+hitCount+"只");
break;
}
}
private void code(int delayTime) {
int position = new Random().nextInt(position_Array.length);
Message message = Message.obtain();
message.what = MSG_CODE;
message.arg1 = position;
handler.sendMessageDelayed(message, delayTime);
totalCount++;
}
private void clear() {
totalCount=0;
hitCount=0;
start_Btn.setText("开始游戏");
start_Btn.setEnabled(true);
diglet_View.setVisibility(View.GONE);
}
}
布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/start_Btn"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="开始游戏"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:onClick="myClick">
</Button>
<TextView
android:id="@+id/cd_View"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="游戏即将开始..."
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/start_Btn">
</TextView>
<TextView
android:id="@+id/result_View"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text=""
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cd_View">
</TextView>
<ImageView
android:id="@+id/diglet_View"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/mouse"
//地鼠图片
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/result_View"
android:onClick="myClick">
</ImageView>
</androidx.constraintlayout.widget.ConstraintLayout>
实际效果