Java实现Android拼图游戏设计过程解析

 更新时间:2022年02月20日 14:47:45   作者:biyezuopinvip  
这篇文章主要介绍了Java实现Android拼图游戏设计过程解析,下面文章要接受的这是一款基于 Java 开发的移动端安卓小游戏,可以作为大家在学习期间的一个小练习,接下来和小编一起进入文章学习具体内容吧

1.项目介绍

这是一款基于 Java 开发的移动端安卓小游戏——大家来拼图

2.项目原理

把选定的一张图片切分很多份,先是 33 格式,在一定的时间内点击格子交换使图形拼成一张完整的图片就算闯关成功,这样关卡也很容易设计,33;44;55;6*6;

3.项目设计

我们需要一个容器,可以放这些图片的块块,为了方便,我们准备使用RelativeLayout 配合 addRule 实现

每个图片的块块,我们准备使用 ImageView

点击交换,我们准备使用传统的 TranslationAnimation 来实现

4.项目实现

代码实现:

首先,我们准备实现能够把一张图片,切成 n*n 份,放在指定的位置;

我们只需要设置 n 这个数字,然后根据布局的宽或者高其中的小值,除以 n,减去一些边距就可以得到我们 ImageView 的宽和高了

5.获取布局

构造方法里面,我们得到把设置的 margin 值转化为 dp;获得布局的 padding 值;整体是个正方形,所以我们取 padding 四个方向中的最小值;

onMeasure 里面主要就是获得到布局的宽度,然后进行图片的准备,以及初始化我们的 Item,为 Item 设置宽度和高度

6.准备图片

这里如果没有设置 mBitmap 就准备一张备用图片,然后调用 ImageSplitter.split 将图片切成 n * n 返回一个 List,这需要新建一个图片切割类 ImageSplitterUtil
切完以后,我们需要将顺序打乱,所以我们调用了 sort 方法,至于比较器,我们使用 random 随机比较大小,这样我们就完成了我们的乱序操作,这里要新建一个 ImagePiece 类来保存图片以及索引。

7.初始化 item

Item宽的计算:childWidth = (mWidth - mPadding * 2 - mMargin * (mColumn - 1) ) / mColumn;
容器的宽度,除去自己的内边距,除去Item间的间距,然后除以Item一行的个数就得到了Item的宽
接下来,就是遍历生成Item,根据他们的位置设置Rule

8.游戏图片的切换

要实现点击两个 Item,他们的图片能够发生交换,B 隐藏副本动画移动到 B 的位置;B 副本移动到 A 的位置

把图片设置为 B,把 B 副本移除,A 显示,这样就完美切合了,用户感觉是 B 移动过去的

B同上

9.游戏胜利的判断

遍历所有的 Item,根据 Tag 拿到真正的索引和当然顺序比较,完全一致则胜利~~胜利以后进入下一关

10.游戏封面

添加一张背景图片,写入游戏名字(大家来拼图),再设置几个按钮,然后点击开始跳转到游戏内容界面。

项目效果展示:

到此这篇关于Java实现Android拼图游戏设计过程解析的文章就介绍到这了,更多相关Java实现Android拼图游戏设计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Swing组件实现进度监视功能示例

    Java Swing组件实现进度监视功能示例

    这篇文章主要介绍了Java Swing组件实现进度监视功能,结合完整实例形式详细分析了Java基于Swing组件实现进度条显示功能的具体操作技巧与相关注意事项,需要的朋友可以参考下
    2018-02-02
  • 一文详解Java中的可变对象(Mutable)与不可变对象(Immutable)

    一文详解Java中的可变对象(Mutable)与不可变对象(Immutable)

    如何在 Java 中创建不可变对象?我以前以为所有对象都是不可变的,因为如果你改变一个 String 实例的内容,它总是会创建一个新的 String 对象并指向该对象,在本文中,我不仅将分享在 Java 中Immutable的步骤,还将讨论可变对象与不可变对象及其优缺点
    2023-11-11
  • RestTemplate Get请求实现bean参数传递详解

    RestTemplate Get请求实现bean参数传递详解

    RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,也有的称之为网络框架,说白了就是Java版本的一个postman,这篇文章主要介绍了详解RestTemplate 用法,需要的朋友可以参考下
    2022-11-11
  • Java自动生成趋势比对数据的方法分享

    Java自动生成趋势比对数据的方法分享

    这篇文章主要和大家分享了一种Java自动生成趋势比对数据的方法设计及实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • JAVA日志框架之JUL、JDK原生日志框架详解

    JAVA日志框架之JUL、JDK原生日志框架详解

    Java语言的强大之处就是因为它强大而且成熟的生态体系,其中包括日志框架,下面这篇文章主要给大家介绍了关于JAVA日志框架之JUL、JDK原生日志框架的相关资料,需要的朋友可以参考下
    2024-01-01
  • Java实现简单棋盘存档和读取功能

    Java实现简单棋盘存档和读取功能

    这篇文章主要为大家详细介绍了Java实现简单棋盘存档和读取功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Java foreach相关原理及用法解析

    Java foreach相关原理及用法解析

    这篇文章主要介绍了Java foreach相关原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Spring Boot数据库链接池配置方法

    Spring Boot数据库链接池配置方法

    这篇文章主要介绍了Spring Boot数据库链接池配置方法,需要的朋友可以参考下
    2017-04-04
  • Mybatis游标查询大量数据方式

    Mybatis游标查询大量数据方式

    这篇文章主要介绍了Mybatis游标查询大量数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 详解jenkins自动部署springboot应用的方法

    详解jenkins自动部署springboot应用的方法

    这篇文章主要介绍了详解jenkins自动部署springboot应用的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论