网站大量收购独家精品文档,联系QQ:2885784924

JetBoy深入分析.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

6358999 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档