- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JetBoy深入分析
JetBoy游戏深入解析(上)——框架分析
By: 海市蜃楼 | In: HYPERLINK /?cat=29 \o 查看 Android开发 的全部文章 Android开发
6 十一 2009
JetBoy这个游戏是Android SDK中的一个例子游戏,花了几天的时间,简单的分析了下,为以后编写游戏代码积累一些经验。前面我们介绍了 HYPERLINK /?p=474 \o Snake游戏深入解析 \t _blank Snake游戏,这个游戏相对比较简单,JetBoy相对复杂些,其主要是告诉我们如何使用JetPlayer类。这个例子程序我们将分3篇幅(框架分析、 HYPERLINK /?p=1333 \o JetBoy游戏深入解析(中)——JetPlayer类解析 \t _blank JetPlayer类解析、 HYPERLINK /?p=1339 \o JetBoy游戏深入解析(下)——核心代码分析 \t _blank 核心代码分析)来解析,本篇幅我们主要分析其框架。
游戏的界面,如下图所示:
先介绍游戏界面的组成:Asteroid(小行星,陨石)、Ship(飞船)、Beam(激光束),其他的都是背景。这个游戏如何玩了?通过中间按钮来控制飞船发射激光,击中陨石得分,飞船的位置与当前最新的陨石保证水平。如何切换游戏界面的横竖?这个相信每个开发人员应该知道吧(Ctrl + F12)!
首先,我们还是分析类的结构,如下图所示:
主要类如下:
主要类
功能说明
JetBoy
Activity的子类,游戏事件
JetView
游戏界面的显示
JetThread
核心线程类
KeyGameEvent
一个 key事件
JetGameEvent
一个JET engine 产生的事件
然后,我们分析程序对用户操作的处理:
最后,我们分析游戏运行的过程:
总结说明
整个程序看起来比较的复杂,我也是在分析Android SDK的基础上,然后将代码整理后使用Rational Rose工具将代码的框架分析出来,通过分析工具,我们就可以屏蔽“复杂“的代码(代码细节),整个框架就可以清晰的显示在我们面前。
JetBoy游戏深入解析(中)——JetPlayer类解析
By: 海市蜃楼 | In: HYPERLINK /?cat=29 \o 查看 Android开发 的全部文章 Android开发
16 十一 2009
在学习之前,我们先简要解析几个概念,总结如下:
JET:一个在嵌入式设备上的音乐播放器(JET is an interactive music player for small embedded devices, including the those running the Android platform)
JET engine:一个控制游戏声音特效的引擎,其使用MIDI格式,并可以控制游戏的时间进度(一个精确的时钟是一个游戏必不可少)。
说到这里让我想起来,在学习DirectShow的时候,发现DirectShow也是通过声卡上的时间,来进行音/视频同步,毕竟硬件设备的时钟精确度比较高。JetPlayer则是Android SDK中提供的控制JET engine的类。
关于MIDI(Musical Instrument Digital Interface:乐器数码接口)我们简要说明下:
MIDI是用于在音乐合成器(music synthesizers)、乐器(musical instruments)和计算机之间交换音乐信息的一种标准协议;
MIDI不是声音信号,在MIDI电缆上传递的不是声音,而是发送给MIDI设备或其它装置让它产生声音或执行某个动作的指令;
MIDI主要有以下优点:生成的文件比较小,因为MIDI存储的是命令,而不是声音波形;容易编辑命令比编辑声音波形要容易的多;可以作为背景音乐,因为MIDI音乐可以和其他的媒体,比如数字电视、图形、动画等一起播放,这样可以加强演示效果;
每个物理MIDI通道(MIDI channel)分成16个逻辑通道,每个逻辑通道可以指定一种乐器,在MIDI信息中,用4个二进制位来表示这16个逻辑通道;
MIDI数据是一套音乐符号的定义,而不是实际的音乐,所以MIDI文件的内容被称为MIDI消息(MIDI message/MIDI event)。一个MIDI消息由1个8位的状态字节并通常跟着2个数字字节组成。在状态字节中,最高有效位设置为“1”,低4位用来表示这个MIDI消息是属于那个通道的,其余3位的设置表示这个MIDI消息是什么类型(通道消息-channel message,系统消息-system message)。
有了以上的基础知识,我们再来看Androi
您可能关注的文档
最近下载
- 【通桥(2016)2322A-II-1】高速铁路预制无砟轨道后张法预应力混凝土简支箱梁(双线) 跨度31.5m(直、曲线) .pdf
- 2024年二建继续教育-合同管理和风险防范(必修)1、2答案.docx VIP
- 2024-2025高二化学人教版选择性必修2习题试卷第三章章节测评(解析带答案版).doc
- GB∕T 3953-2024电工圆铜线 GB∕T 3953-2024电工圆铜线.pdf
- 部编版六年级毕业作文总复习指导(名师作品).ppt
- 产品上架与下架操作指南.doc VIP
- 《你好!法语1》练习册答案.pdf
- 日本的设计文化.ppt VIP
- 甲醇行业未来发展趋势预测.docx
- 收发文件管理制度.docx
文档评论(0)