天津大学仁爱学院计算机科学与技术系毕业实习
3.2 主界面Activity的实现
主界面Activity的实现,主要是SeekBar 与 ImageButton 与View 的显示。实现难点主要在于SeekBar 与游戏的同步。需要用到多线程与Handler的传递参数。ImageButton 的实现是功能键的实现。主要难点在于对界面的更新与实现的算法。主界面的截图:
天津大学仁爱学院计算机科学与技术系毕业实习
3.3 游戏结束时Dialog的实现
游戏结束时有两种状态:
如果在每一关的规定时间内将所有水果消除,那么将会展现的是游戏胜利状态。由此可以进入下一关继续挑战。下一关比上一关时间少10秒。
如果在规定时间结束还没有将所有水果消除,那么将会展现的是游戏失败状态。由此可以重新开始本关或者是进入下一关挑战。
水果已经全部消除 handler 规定时间到 Activity改变外观弹出dialog
天津大学仁爱学院计算机科学与技术系毕业实习
在游戏中通过Handler传递参数的不同而使界面显示两种不同的Dialog。截图如下:
3.4 游戏主要逻辑的处理
天津大学仁爱学院计算机科学与技术系毕业实习
判断游戏中的俩个水果是否可以消除是游戏中的重点和难点。其中涉及到这俩个点是否可以通过小于等于3的线段连通的一个算法。首先要将视图中的水果转化成程序中的一个int型的MAP[][]数组。
在该数组中存放的是水果种类,用int型进行表示。如果该位置的水果已经被消除那么该位置的map值为0 。其余有水果的为水果的种类值。
点击事件发生之后,将第一次点击的水果加入一个List中,标记为已选择的。第二次点击事件发生之后,进行判断,首先判断否跟第一次点击时的水果的int值相等。如果不相等,将list清空,将该点加入list中。如果int值相等,那么进行是否可以连接的算法进行判断。是是否可以连通。
第一种情况:横坐标或者纵坐标相等,且中间无水果
加入已选list中 点击水果 判断是否可以消除
天津大学仁爱学院计算机科学与技术系毕业实习
第二种情况:
第三种情况: