欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android實現打地鼠游戲

 更新時間:2020年04月23日 14:22:50   作者:瘋狂的鯊魚  
這篇文章主要為大家詳細介紹了android實現打地鼠游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

今天上課老師用Java實現了打地鼠游戲的界面和具體邏輯,那么我也嘗試使用Android語言實現其功能。

首先是打地鼠游戲的玩法

1.每隔1秒或者0.5秒地鼠會出現在九宮格中的任一位置
2.點擊界面,如果地鼠出現的位置與點擊位置相同,則認為打中地鼠。否則游戲繼續(xù)。
3.打中地鼠后,游戲立即停止。

先上兩張效果圖

布局實現

<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" >

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal" >

 <Button
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:onClick="start"
  android:text="開始" />

 <Button
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:onClick="end"
  android:text="暫停" />
 </LinearLayout>

 <TableLayout
 android:layout_width="match_parent"
 android:layout_height="0dp"
 android:layout_weight="1" >

 <TableRow android:layout_weight="1" >

  <TextView
  android:id="@+id/text11"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />

  <TextView
  android:id="@+id/text12"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />

  <TextView
  android:id="@+id/text13"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />
 </TableRow>

 <TableRow android:layout_weight="1" >

  <TextView
  android:id="@+id/text21"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />

  <TextView
  android:id="@+id/text22"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />

  <TextView
  android:id="@+id/text23"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />
 </TableRow>

 <TableRow android:layout_weight="1" >

  <TextView
  android:id="@+id/text31"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />

  <TextView
  android:id="@+id/text32"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />

  <TextView
  android:id="@+id/text33"
  android:layout_width="wrap_content"
  android:layout_height="match_parent"
  android:layout_margin="3dp"
  android:layout_weight="1"
  android:background="#d2b48c"
  android:gravity="center" />
 </TableRow>
 </TableLayout>

</LinearLayout>

邏輯代碼

需要實現每隔1秒繪制一次界面,且得確定更新地鼠的位置(這里我用的handler來發(fā)送循環(huán)消息實現的)

ArrayList<TextView>texts;//用來存放九個TextView
Handler handler = new Handler(new Callback() {
 @Override
 public boolean handleMessage(Message msg) {
  number = (int) (Math.random() * 8);
  System.out.println(number);
  for (int i = 0; i < arrays.length; i++) {
  if (i==number) {
   texts.get(i).setText("地鼠");
  }else {
   texts.get(i).setText("");
  }
  }
  handler.sendEmptyMessageDelayed(0, 500);
  return false;
 }
 });

這里單獨寫一個TextView的點擊事件(一共九個),這里需要注意的是,我給每個textview都賦給了一個值a,從0-8,當點擊的textview值 a=(地鼠出現的位置)時,我們就可以認為打中了地鼠。

public void onClick(View v) {
 // TODO Auto-generated method stub
 switch (v.getId()) {
 case R.id.text11:
  if (number==0) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();

  handler.removeMessages(0);
  }
  break;
 }
 }

最后貼上全部代碼。

package com.example.dadishu;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

 private int number;
 private TextView text11;
 private TextView text12;
 private TextView text13;
 private TextView text21;
 private TextView text22;
 private TextView text23;
 private TextView text31;
 private TextView text32;
 private TextView text33;

 private int[] arrays = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 ArrayList<TextView> texts;
 Handler handler = new Handler(new Callback() {

 @Override
 public boolean handleMessage(Message msg) {
  number = (int) (Math.random() * 8);
  System.out.println(number);
  for (int i = 0; i < arrays.length; i++) {
  if (i == number) {
   texts.get(i).setText("地鼠");
  } else {
   texts.get(i).setText("");
  }
  }
  handler.sendEmptyMessageDelayed(0, 500);
  return false;
 }
 });

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 requestWindowFeature(Window.FEATURE_NO_TITLE);
 setContentView(R.layout.activity_main);
 text11 = (TextView) findViewById(R.id.text11);
 text12 = (TextView) findViewById(R.id.text12);
 text13 = (TextView) findViewById(R.id.text13);
 text21 = (TextView) findViewById(R.id.text21);
 text22 = (TextView) findViewById(R.id.text22);
 text23 = (TextView) findViewById(R.id.text23);
 text31 = (TextView) findViewById(R.id.text31);
 text32 = (TextView) findViewById(R.id.text32);
 text33 = (TextView) findViewById(R.id.text33);

 texts = new ArrayList<TextView>();
 for (int i = 0; i < arrays.length; i++) {
  texts.add(text11);
  texts.add(text12);
  texts.add(text13);
  texts.add(text21);
  texts.add(text22);
  texts.add(text23);
  texts.add(text31);
  texts.add(text32);
  texts.add(text33);

 }
 for (TextView text : texts) {
  text.setOnClickListener(this);
 }
 }

 public void start(View v) {

 TimerTask task = new TimerTask() {
  @Override
  public void run() {
  handler.sendEmptyMessage(0);

  }
 };
 Timer timer = new Timer();
 timer.schedule(task, 500);
 }

 public void end(View v) {
 handler.removeMessages(0);
 }

 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 switch (v.getId()) {
 case R.id.text11:
  if (number == 0) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();

  handler.removeMessages(0);
  }
  break;
 case R.id.text12:
  if (number == 1) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text13:
  if (number == 2) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text21:
  if (number == 3) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text22:
  if (number == 4) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text23:
  if (number == 5) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text31:
  if (number == 6) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text32:
  if (number == 7) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 case R.id.text33:
  if (number == 8) {
  Toast.makeText(this, "打中地鼠了!。。。", 1).show();
  handler.removeMessages(0);
  }
  break;
 default:
  break;
 }
 }

 @Override
 protected void onDestroy() {
 // TODO Auto-generated method stub
 super.onDestroy();
 player.release();
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 解析android中的幫助、about、關于作者、HELP等提示頁面

    解析android中的幫助、about、關于作者、HELP等提示頁面

    本篇文章是對android中的幫助、about、關于作者、HELP等提示頁面進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Android開發(fā)學習實現簡單計算器

    Android開發(fā)學習實現簡單計算器

    這篇文章主要為大家詳細介紹了Android實現一個簡單計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Flutter應用程序實現隱私屏幕示例解析

    Flutter應用程序實現隱私屏幕示例解析

    這篇文章主要為大家介紹了Flutter應用程序實現隱私屏幕示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Android將應用調試log信息保存在SD卡的方法

    Android將應用調試log信息保存在SD卡的方法

    Android將應用調試log信息保存在SD卡的方法大家都知道嗎,下面腳本之家小編給大家分享Android將應用調試log信息保存在SD卡的方法,感興趣的朋友參考下
    2016-04-04
  • Android NDK中socket的用法以及注意事項分析

    Android NDK中socket的用法以及注意事項分析

    本篇文章是對Android NDK中socket的用法以及注意事項進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Android判斷wifi是5G還是2.4G

    Android判斷wifi是5G還是2.4G

    這篇文章給大家分享android區(qū)分wifi是5G還是2.4G的方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2016-12-12
  • Android Retrofit的使用詳解

    Android Retrofit的使用詳解

    本文介紹了Android Retrofit的使用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • android中sqlite的按條件查找的小例子

    android中sqlite的按條件查找的小例子

    android中內嵌輕量級數據庫sqlite,涉及到的操作無外乎增刪改查,今天就來說一說其中的查找操作,更多的時候我們用到的查找是要按條件查找的 例如表的結構如下:
    2013-06-06
  • Android應用隱私合規(guī)檢測實現方案詳解

    Android應用隱私合規(guī)檢測實現方案詳解

    這篇文章主要介紹了Android應用隱私合規(guī)檢測實現方案,我們需要做的就是提前檢測好自己的應用是否存在隱私合規(guī)問題,及時整改過來,下面提供Xposed Hook思路去檢測隱私合規(guī)問題,建議有Xposed基礎的童鞋閱讀,需要的朋友可以參考下
    2022-07-07
  • Cocos2d-x入門教程(詳細的實例和講解)

    Cocos2d-x入門教程(詳細的實例和講解)

    這篇文章主要介紹了Cocos2d-x入門教程,包括詳細的實例、講解以及實現過程,需要的朋友可以參考下
    2014-04-04

最新評論