群英传的最后一章,我大致的看了一下这个例子,发现鸿洋大神也做过,就参考两个人的设计逻辑,感觉都差不多,就这样实现起来了
我们九宫格嘛,肯定要一个切图的工具,把一个图片给切成九张,那具体是怎么实现呢?我们先写一个bean来存储一切的状态
然后就可以实现我们的切图工具类了
工具有了,就需要容器了,我们需要自定义一个,这里我们就继承相对布局,我们这个是一个游戏布局,所以我实现准备好了一张妹子的图片,分辨率是800*80
代码的逻辑十分的简单,这点不假,而且注释也是相对来讲清晰易懂,这样,我们先测试一下,在xml中引用
我们运行一下看看现在裁剪后的效果
可以的,那我们继续
这里大家应该都知道,要用我们的点击事件了,我们继续在gameview里面编写
这里我们需要去写一个图片交换的方法
这样,我们就可以运行了
但是,大家有没有发现,他的小bitmap排序是错误的,这就需要我们去处理了 实际上是因为我们虽然交换了,但是tag没改,我们在回到最初始的状态之前加上以下代码:
既然我们卡片已经实现了,那么接下来,我们怎么的也要去加点动画呀,开搞,我们先把公用的东西抽取出来
接着,我们需要修改以下图片交换的方法,添加一层动画层
这样,我们就可以有动画效果了,我们来运行一下
到现在,我们就已经可以玩了,但是这样子就不叫游戏了,我们应该这样添加一些过关的逻辑
其实过关的逻辑很简单的,只要我们在每次移动之后去判断是不是过关了就行,如下代码
ok,但是这个不是重点,重点是我们要下一关,而且要把相应的数据传递给mainactivity,这就要实现接口了
同时要实现下一关的方法
这样,我们就可以在handler中操作了
这边的逻辑ok了之后,我们需要回到mainactivity去操作显示ui
这样,我们再来演示一遍
开发也到了最后了,我们把时间记录给实现了,我们还是的创建几个方法
然后发送handler
现在我们可以去mainactivityity实现逻辑了,这里的gameover逻辑可以这样下
时间
这里要记住设置显示效果
现在就可以倒计时了,同时,也可以监听到结束了
我们gameover以后也是需要操作的,我们有一个重新开始,我们只要写一个初始化的方法就可以了
这样就可以了 当然,我们游戏一般都是有暂停的,这个我们也加上,我们在gameview中新建方法
不过我们的目的是他后台时=不记录时间,所以只要和生命周期绑定就可以了
到这里,整个游戏算是正式的开发完整了,贴上完整的代码
我们最终的运行结果