前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android实现简易版打地鼠

Android实现简易版打地鼠

作者头像
砸漏
发布2020-11-04 10:32:46
1.3K0
发布2020-11-04 10:32:46
举报
文章被收录于专栏:恩蓝脚本

本文实例为大家分享了Android实现简易版打地鼠的具体代码,供大家参考,具体内容如下

目标效果:

1.activity_main.xml页面:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"? 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.weixu.eclipsemole.MainActivity" 
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" 
<ImageView
android:id="@+id/ivZeroZero"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivZeroOne"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivZeroTwo"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivZeroThree"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
</LinearLayout 
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" 
<ImageView
android:id="@+id/ivOneZero"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivOneOne"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivOneTwo"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivOneThree"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
</LinearLayout 
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" 
<ImageView
android:id="@+id/ivTwoZero"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivTwoOne"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivTwoTwo"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivTwoThree"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
</LinearLayout 
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" 
<ImageView
android:id="@+id/ivThreeZero"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivThreeOne"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivThreeTwo"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
<ImageView
android:id="@+id/ivThreeThree"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="whackAMole"
android:clickable="false"
android:background="@drawable/emptyhole"
android:layout_height="match_parent" / 
</LinearLayout 
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="60dp" 
<Button
android:id="@+id/btStartWhackAMole"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="btnClick"
android:text="开始"/ 
<TextView
android:id="@+id/tvWhackAMoleScore"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="分数"/ 
<Button
android:id="@+id/btStopWhackAMole"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="btnClick"
android:text="结束"/ 
</LinearLayout 
</LinearLayout 

2.MainActivity.java页面;

代码语言:javascript
复制
package com.example.weixu.eclipsemole;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private ImageView[][] view=new ImageView[4][4];
private Button btStartWhackAMole,btStopWhackAMole;
private TextView tvWhackAMoleScore;
private int time_s=1000; //难度的时间
private int time=time_s; //地鼠出来时间
private int score=0; //成绩,打地鼠个数
private int num=0; //地鼠出来个数
private int temp_i=0,temp_j=0; //记录上一次出现的地鼠在数组view中的下标
private int flag=1; //默认为停止状态,0开始,1结束,2运行
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
view[0][0]= (ImageView) findViewById(R.id.ivZeroZero);
view[0][1]= (ImageView) findViewById(R.id.ivZeroOne);
view[0][2]= (ImageView) findViewById(R.id.ivZeroTwo);
view[0][3]= (ImageView) findViewById(R.id.ivZeroThree);
view[1][0]= (ImageView) findViewById(R.id.ivOneZero);
view[1][1]= (ImageView) findViewById(R.id.ivOneOne);
view[1][2]= (ImageView) findViewById(R.id.ivOneTwo);
view[1][3]= (ImageView) findViewById(R.id.ivOneThree);
view[2][0]= (ImageView) findViewById(R.id.ivTwoZero);
view[2][1]= (ImageView) findViewById(R.id.ivTwoOne);
view[2][2]= (ImageView) findViewById(R.id.ivTwoTwo);
view[2][3]= (ImageView) findViewById(R.id.ivTwoThree);
view[3][0]= (ImageView) findViewById(R.id.ivThreeZero);
view[3][1]= (ImageView) findViewById(R.id.ivThreeOne);
view[3][2]= (ImageView) findViewById(R.id.ivThreeTwo);
view[3][3]= (ImageView) findViewById(R.id.ivThreeThree);
btStartWhackAMole= (Button) findViewById(R.id.btStartWhackAMole);
btStopWhackAMole= (Button) findViewById(R.id.btStopWhackAMole);
tvWhackAMoleScore= (TextView) findViewById(R.id.tvWhackAMoleScore);
btStartWhackAMole.setClickable(true);
btStopWhackAMole.setClickable(false);
}
public void whackAMole(View view){
view.setBackgroundResource(R.drawable.hit);
view.setClickable(false);
score++;
time=time_s-score*10;
tvWhackAMoleScore.setText("分数:"+score);
}
public void btnClick(View view){
switch (view.getId()){
case R.id.btStartWhackAMole:
btStartWhackAMole.setClickable(false);
btStopWhackAMole.setClickable(true);
num=0;
score=0;
flag=0; //开始
tvWhackAMoleScore.setText("分数:0");
new MyAsyncTask().execute();
break;
case R.id.btStopWhackAMole:
btStartWhackAMole.setClickable(true);
btStopWhackAMole.setClickable(false);
score=0;
flag=1; //停止
new MyAsyncTask().execute();
break;
}
}
class MyAsyncTask extends AsyncTask<String,Integer,String {
@Override
protected String doInBackground(String... strings) {
//进入运行状态
while(flag!=1){
flag=2;
double r=Math.random();
int i=((int)(r*10))%4;
r=Math.random();
int j=((int)(r*10))%4;
try {
Thread.sleep(time);
}catch (InterruptedException e){
e.printStackTrace();;
}
publishProgress(i,j);
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) { //主线程
if(flag==0){ //开始
view[values[0]][values[1]].setBackgroundResource(R.drawable.emptyhole);
}else if(flag==2){ //运行
view[temp_i][temp_j].setBackgroundResource(R.drawable.emptyhole);
view[temp_i][temp_j].setClickable(false); //上一次出现的设置为不能点击
view[values[0]][values[1]].setBackgroundResource(R.drawable.show6);
view[values[0]][values[1]].setClickable(true);
num++;
if((num-score)==5){
flag=1;
btStartWhackAMole.setClickable(true);
Toast.makeText(MainActivity.this,"游戏结束",Toast.LENGTH_SHORT).show();
}
temp_i=values[0];
temp_j=values[1];
}else if(flag==1){
view[values[0]][values[1]].setBackgroundResource(R.drawable.emptyhole);
view[values[0]][values[1]].setClickable(false);
}
}
}
}

是将四行四列的ImageView定义为一个二维数组,然后生成随机坐标进行改变图片。

源码:点击打开链接

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档