文章目录五、运行效果六、项目总结七、项目源码
一、项目概述
之前有不少粉丝私信我说,能不能用原生的语言开发一款在手机上运行的游戏呢?
说实话,使用java语言直接开发游戏这个需求有点难,因为一些比较复杂的游戏都是通过或者等游戏引擎开发出来的,然后再移植到手机当中,使用完整的游戏引擎开发的过程比较简单,而且界面比较流畅,观感和体验度都很好 。
所以直接使用java开发的游戏并不多 。当然,虽说不多但也有 。简单些的比如:2048、拼图游戏、贪吃蛇、推箱子等,复杂点的比如:斗地主,这些都可以用java语言开发 。因为这些游戏刷新界面次数比较少,是可以用java开发出来的 。
所以在这篇博客里面,我们就来开发一款简单的拼图游戏,这款拼图游戏就和我们小时候玩的游戏是一样的,这里面的涉及到的算法不多,可以很容易学会,是作为入门的一个非常好的实例 。
二、开发环境
三、需求分析
我们先来看下最终要实现的效果:
可以看到游戏开始后,开始计时,然后下面是被打乱的九宫格图片,最后一块是空白的,因为要留出空间移动,中间是重新开始按钮,点击就会重新计时而且拼图碎片重新打乱,最底下是原图,方便大家对照着进行拼凑 。当你拼图完成后,上面的第九块拼图会立刻显示出来补齐整张图片,然后弹出对话框,告诉你拼图成功,用时为多少多少秒,点击确认即可 。
所以我们分为六个步骤来实现:
拼图游戏布局绘制拼图游戏时间计时拼图游戏打乱显示拼图游戏碎片位置切换拼图游戏成功的条件拼图游戏重新开始
我们来看下需要准备的图片素材:
这里先是一张小熊的样图,命名就是 。然后就是将它按九宫格裁剪成的九张图片,命名格式我来解释下:我们看第八张我选中的图片,它的名字为 。这里解释下为什么是02x01,这就可以看做一个三行三列的二维数组,排列方式就和下面一样 。数组行和列下标都是从0开始,所以第八张就是在第2行第1列,所以就是02x01,其他的也以此类推 。
大家可以自己选图片进行裁剪命名,当然也可以直接下载我的源码,里面就有这些图片 。
下面我们就一起来实现这个拼图游戏吧~
四、实现过程 1、拼图游戏布局绘制 我们首先来分析下游戏的布局
再来看下最终实现的效果图,先分析一下怎么绘制布局,实现一个项目的第一步是将布局按照自己期望的样子完成 。
因为这是一个上下结构,所以我们用一个线性布局()来实现最合适,方向()设置为竖直方向() 。可以看到这个拼图分为三行三列,所以我们直接将每一行分为一个小的,一共三个,然后在每个小的里面水平放三个图片按钮,这样就实现了,思路有了,我们来绘制吧 。
我们来绘制游戏的布局
从上至下的第一个布局是显示时间的,我们将它的id设置为,和都设置为,就是适应内容大小,然后text文本内容设为“时间:0”,这个是方便测试写上文本的,因为边写代码可以边看旁边的效果变化 。
然后设置为"",就是设置自己在父容器(顶层的)中居中,这里补充下知识点:
再来改变下字体大小,设置为20sp,sp是像素,补充下单位的知识点:
最后设置字体颜色为#,即红色 。一般是通过.xml资源来引用,这里因为红色比较好表示就直接设置了 。
代码如下:
设置完成后,我们来看下效果图:
接着我们来绘制九宫格拼图,先设置第一行这三个小图片的外布局,依然是,设置它的id=“@+id/”,就表示第一行 。
- ugui 后备字体引用问题 References to other fronts
- unity 3D物体使用EventSystem响应事件
- 樱桃的功效与作用禁忌
- 审核员考试-认证通用基础-合格评定基础-1
- 钓鱼感温感深探头有什么用
- 奶油蛋糕最佳食用时间
- 果袋纸的质地用途特点是什么
- 不粘锅会致癌吗 为避免致癌使用不粘锅注意这8点
- 修改Android 12解锁失败等待时间规则详解
- iOS或Android 如何利用同一个二维码识别手机系统