Android Studio打地鼠小游戏

点击开始游戏按钮后界面出现地鼠,出现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>

实际效果

 

 

  • 15
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值