android开发中利用handler制作一个打地鼠小游戏

发布时间:2020-11-25 15:21:11

来源:亿速云

阅读:136

作者:Leah

这期内容当中小编将会给大家带来有关android开发中利用handler制作一个打地鼠小游戏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

xml

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/main_imageview"

android:layout_width="80dp"

android:layout_height="80dp"

android:src="@mipmap/icon"

android:visibility="gone" />

android:id="@+id/main_button"

android:layout_width="90dp"

android:layout_height="50dp"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="30dp"

android:text="开始游戏" />

android:id="@+id/main_textview"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true" />

java

package com.tcy.digettetest;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

import java.lang.ref.WeakReference;

import java.util.IllegalFormatCodePointException;

import java.util.Random;

public class MainActivity extends AppCompatActivity implements View.OnClickListener, View.OnTouchListener {

public static final int CODE = 1001;

public static final int MAX_NUMBER = 10;

public static final int RANDOM_NUMBER = 500;

Button statrGameButton;

TextView resultTextView;

ImageView saratogaImage;

int[][] mPostion = new int[][]{

{342, 180}, {432, 880},

{521, 256}, {429, 780},

{456, 976}, {145, 665},

{123, 678}, {564, 567},

};

int mTotalCount;

int mSuccessCount;

SaratogaHandler mHandler = new SaratogaHandler(this);

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

setTitle("打加加");

}

private void initView() {

statrGameButton = findViewById(R.id.main_button);

resultTextView = findViewById(R.id.main_textview);

saratogaImage = findViewById(R.id.main_imageview);

statrGameButton.setOnClickListener(this);

saratogaImage.setOnTouchListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.main_button:

startGame();

break;

}

}

private void startGame() {

statrGameButton.setEnabled(false);

resultTextView.setText("开始啦");

statrGameButton.setText("游戏中……");

//发送消息

next(0);

}

public void next(int delayTime) {

int position = new Random().nextInt(mPostion.length);

Message message = Message.obtain();

message.what = CODE;

message.arg1 = position;

mHandler.sendMessageDelayed(message, delayTime);

mTotalCount++;

}

@Override

public boolean onTouch(View v, MotionEvent event) {

v.setVisibility(View.GONE);

mSuccessCount++;

resultTextView.setText("打到了" + mSuccessCount + "只,共" + MAX_NUMBER + "只.");

return false;

}

public static class SaratogaHandler extends Handler {

final WeakReference weakReference;

public SaratogaHandler(MainActivity activity) {

this.weakReference = new WeakReference<>(activity);

}

@Override

public void handleMessage(@NonNull Message msg) {

super.handleMessage(msg);

MainActivity activity = weakReference.get();

switch (msg.what) {

case CODE:

if (activity.mTotalCount > MAX_NUMBER) {

activity.clear();

Toast.makeText(activity, "小加加打完了", Toast.LENGTH_SHORT).show();

return;

}

int position = msg.arg1;

activity.saratogaImage.setX(activity.mPostion[position][0]);

activity.saratogaImage.setY(activity.mPostion[position][1]);

activity.saratogaImage.setVisibility(View.VISIBLE);

int randomTime = new Random().nextInt(RANDOM_NUMBER) + RANDOM_NUMBER;

activity.next(randomTime);

break;

}

}

}

private void clear() {

mTotalCount = 0;

mSuccessCount = 0;

saratogaImage.setVisibility(View.GONE);

statrGameButton.setText("点击开始");

statrGameButton.setEnabled(true);

}

}

上述就是小编为大家分享的android开发中利用handler制作一个打地鼠小游戏了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏相关推荐

  1. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  2. python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

    导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环 ...

  3. android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...

    Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...

  4. android动画view上移,在Android开发中使用View制作一个引导动画

    在Android开发中使用View制作一个引导动画 发布时间:2020-11-20 16:46:16 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关在Android开发中使用V ...

  5. 使用Hype物理引擎制作一个网页小游戏(中)

    在上一小节中,相信大家跟着小编的教程都能够顺利完成这款网页小游戏的静态场景制作,在本小节中,小编将带着大家完成网页小游戏的动画录制部分. 第一步:从上一节的游戏预览效果可以看到,游戏过程中,上方的矩形 ...

  6. python小工具开发_使用Python制作一个桌面小工具

    今天,我们制作一个有意思的小工具,利用Python获取历史上的今天发生的事情. [分析] 个人总结了一下,"历史上的今天"有很多调用接口.有很多调用接口都是收费的或者就是免费但限制 ...

  7. android 画布旋转,Android-在安卓开发中,如何实现一个简单的图片旋转

    图像的旋转有很多方法,除了常见的使用动画和矩阵,还可以通过操作背景画布本身来旋转 现将正常的图像绘制到画布中,保存一次画布后整体旋转,然后再恢复画布,此时的图像便得到了旋转的效果,google 官方也 ...

  8. 利用python制作自己的小游戏,超简教程

    懒得客套,直接步入主题 首先,利用python来做游戏需要用到python中的pygame模块,这个我们在终端cmd中安装 输入:pip install pygame 安装好后我们进入pycharm查 ...

  9. 用cocos2d 2.1制作一个过河小游戏(4): 游戏主逻辑BaseLayer设计

    前段时间一直在忙.没有时间更新博客.今天还是抽点时间把最后一小部分游戏的实现放上来吧. BaseLayer.h: #import <GameKit/GameKit.h> #import & ...

最新文章

  1. CNN如何用于NLP任务?一文简述文本分类任务的7个模型
  2. 变换为json类型却遭遇乱码\u516c\u5f00\u65e5\u671f
  3. Java程序设计经典习题15道
  4. Leaflet中使用layerGroup图层组实现图层切换
  5. 机器学习小技巧:模型训练完成后发送邮件
  6. C++ STL 容器 vector
  7. c语言表达式求值的空间复杂度,373-时间复杂度(表达式求值)
  8. layui跨域问题的解决
  9. mysql ip比较大小_解决mysql进行ip字符串比较问题
  10. Java架构师发展路线
  11. IDEA插件修改class文件
  12. 前端工作七个月经验总结以及技术分享
  13. 机器人领域的SCI期刊介绍
  14. 关于小米历史官方刷机包
  15. P4816 [USACO15DEC]High Card Low Card G 题解
  16. Python决策树鸢尾花类别分类
  17. VMware虚拟机去虚拟化|过强壳|虚拟机过检测|游戏多开-WINXP|WIN7|WIN10
  18. C语言课程设计——宾馆管理系统
  19. Mysql学习代码笔记
  20. 在C++中响铃的两种方法

热门文章

  1. Power BI查漏补缺_1
  2. Chrome for Android AutoComplete地址栏地址自动补全功能调研和更新
  3. IoT物联网平台如何实现设备全球分发、就近接入?
  4. R语言使用mgcv包中的gam函数拟合广义加性模型(Generalized Additive Model,GAMs):从广义加性模型GAM中抽取学习到的样条函数(spline function)
  5. springcloud五大神兽之Gateway
  6. 2021高考长郡中学成绩单查询,2021年长沙各高中高考成绩排名及放榜最新消息
  7. Dockerfile部署LNMP
  8. 设计计算机组装方案音频,组装 PC 与 Treain 音频电脑的对比实验
  9. Postman 的替代品来了
  10. PrimeVue - 基于 Vue 3 的免费开源、定制性强的前端 UI 组件库