JetBoy这个游戏是Android SDK中的一个例子游戏,花了几天的时间,简单的分析了下,为以后编写游戏代码积累一些经验。前面我们介绍了Snake游戏 ,这个游戏相对比较简单,JetBoy相对复杂些,其主要是告诉我们如何使用JetPlayer类。这个例子程序我们将分3篇幅(框架分析、JetPlayer类解析 、核心代码分析 )来解析,本篇幅我们主要分析其框架。
游戏的界面,如下图所示:
先介绍游戏界面的组成:Asteroid(小行星,陨石)、Ship(飞船)、Beam(激光束),其他的都是背景。
这个游戏如何玩了?通过中间按钮来控制飞船发射激光,击中陨石得分,飞船的位置与当前最新的陨石保证水平。
如何切换游戏界面的横竖?这个相信每个开发人员应该知道吧(Ctrl + F12)!
首先,我们还是分析类的结构,如下图所示:
主要类 | 功能说明 |
JetBoy | Activity的子类,游戏事件 |
JetView | 游戏界面的显示 |
JetThread | 核心线程类 |
KeyGameEvent | 一个 key事件 |
JetGameEvent | 一个JET engine 产生的事件 |
然后,我们分析程序对用户操作的处理:
最后,我们分析游戏运行的过程:
总结说明
整个程序看起来比较的复杂,我也是在分析Android SDK的基础上,然后将代码整理后使用Rational Rose工具将代码的框架分析出来,通过分析工具,我们就可以屏蔽“复杂“的代码(代码细节),整个框架就可以清晰的显示在我们面前。