第7章-手机游戏开发课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第7章-手机游戏开发课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手机 游戏 开发 课件
- 资源描述:
-
1、 v 游戏是策划、美工和程序三者的协调及创意和商业运作的平衡。集美术、音乐、动画、人工智能等元素于一身。v 目前支持Java的手机性能越来越强大,同时,手机的价格在不断地下降,因此,手机游戏的市场前景将是非常良好的。本章将从图片的处理、动画的制作和音效的实现来学习手机游戏开发的基础知识。v 手机游戏开发简介手机游戏开发简介7.1 PNG PNG图像格式介绍图像格式介绍7.2游戏设计中的动画游戏设计中的动画7.3手机游戏手机游戏2D2D动画开发动画开发7.4 v 手机音效开发手机音效开发7.5综合示例:飞机碰撞综合示例:飞机碰撞7.6小结小结7.77.1 手机游戏开发简介v 现在的移动电话可以看
2、作小型的计算机,只是它的处理能力与PC相比很有限,但是足够运行一个小型的游戏。v 另一个特性就是它们还是网络计算机,能够高速发送和接收数字数据。除了语音数据以外,它们还可以发送和接收其他类型的数据。v 但是与PC相比,它们的输入和显示功能也很有限。手机的屏幕都较小,其对声音处理能力也很有限。v 开发者在这样的平台上开发应用,必须认真的考虑这些特点。本节将重点讨论手机本身的特点和手机游戏开发的特点。7.1.1 手机游戏的类型v v 1嵌入式游戏v 2短信息服务游戏v 3WAP浏览器游戏 图图7-1 WAP7-1 WAP游戏的工作原理图游戏的工作原理图 7.1.2 手机游戏开发特点v v 1庞大的
3、潜在用户群v 2便携性v 3屏幕小 v 4有限的颜色和声音支持v 5应用程序大小限制v 6高等待时间v 7可中断性是关键 7.1.3 扬长避短的手机游戏开发v 1缩短每回合的游戏时间v 2合理处理等待时间 7.2 PNG图像格式介绍 7.2.1 PNG的由来v PNG全名Portable Network Graphics,字面意思是“可移植性网络用图形”,从这简单几个字已经明白定义了PNG的用途以及主要发展方向。v 1996年,PNG Group向W3C(World Wide Web Consortium)提出一种多媒体图形格式,重点在于改进现有JPG跟GIF的缺点,并且提供更多新的概念与压缩
4、模式,在提出后得到W3C的认可与推荐。v 在1996年10月1号,W3C正式发函公告,推荐PNG为最佳的图形格式,并且以“PNG Delivers Higher Quality Graphics for Web Page Design”的文字作为该文件的标头。7.2.2 PNG的图档格式特性v PNG保留了大部分GIF的特性,PNG的压缩率很高,尤其是图表型的图片 7.2.3 PNG格式图像的压缩及处理v PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成。v PNG定义了两种类型的数
5、据块,一种是称为关键数据块(critical chunk),这是标准的数据块,另一种叫做辅助数据块(ancillary chunks),这是可选的数据块。7.2.4 使用PNG图片v 在MIDP具体实现中,Images可以是可变的也可以是不可变的。v 不可变的Image可以从二进制图像文件创建,如果要用二进制图像数据来创建Image,这些数据必须是设备支持的格式。v 有的设备可能会支持额外的一些格式,不过所有设备都必须支持PNG格式。在手机中使用PNG图片,必须先把图片加载到内存,并且实例化成为一个Image对象。v Image对象的构造方法如下:vpublic static Image cr
6、eateImage(String name)图图7-2 7-2 旋转的旋转的“X”X”7.2.5 游戏菜单制作v 当玩家在菜单项中选择了某选项后,系统给玩家返回的界面应该不同。v 下例菜单选项包括:新游戏、高分榜、帮助和退出。其他屏幕包括:游戏中的界面、查看高分榜的界面、查看帮助的界面。图图7-3 7-3 游戏的菜单界面游戏的菜单界面 7.3 游戏设计中的动画 7.3.1 动画基础v 1什么是动画v 动画是通过连续播放一系列画面,给人的视觉造成连续变化的图画。v 2动画制作应注意的问题(1)速度的处理(2)循环动画(3)夸张与拟人 7.3.2 双缓冲技术v 双缓冲技术是编写J2ME游戏程序的关
7、键技术之一。实际上,双缓冲技术是计算机动画的一项传统技术。v 造成屏幕闪烁的主要原因在于,画面在显示的同时,程序又在改变它。解决办法就是在内存中开辟一片区域作为后台画面,程序对它更新、修改,完成后再显示它。v 这样被显示的图像永远是已经完全画好的图像,程序修改的将不是正在被显示的图像。当然还有其他方法可以解决屏幕闪烁问题,但使用双缓冲技术是一种值得推荐的解决方案。v 双缓冲思想体现在程序上就是要依次完成以下几步工作。(1)定义一个Graphics对象bg和一个Image对象buf,按屏幕大小建立一个缓冲对象附给buf,然后取得buf的Graphics对象附给bg。(2)在bg(缓冲屏幕)上用d
8、rawImage()和drawString等语句画图,相当于在缓冲屏幕上画图。(3)调用repaint()语句,它的功能是告知系统调用paint()来完成真实屏幕的显示。(4)在paint(Graphics g)方法里,将buf(缓冲屏幕上的图片)画到真实屏幕上。7.3.3 图片的裁剪v 我们可以通过设定裁剪的区域来显示图片的一个片断,使用前面讲的方法:v setClip()v getClipX()getClipY()v getClipWidth()getClipHeight()v 创建裁剪区域的步骤如下。(1)声明类的引用。(2)创建类的实例,并赋值给这些类引用。(3)当程序开始时,显示Ca
9、nvas类的实例。(4)当Exit时,终止MIDlet。(5)定义Canvas的派生类,并实现CommandListener。(6)请求保存图片所需的足够内存块。如果使用动态图像,就创建图像。否则确定图像包含什么静态图片文件名。(7)从Paint()方法中判断图像是否创建成功或者图像是否打开成功。如果是创建一个新的裁剪区域,在画布上绘制图像。7.3.4 播放动画框架v 开发MIDP的程序员经常会在一个MIDlet上显示动画。MIDP 1.0没有直接提供对动画的支持(正在开发中的MIDP 2.0支持),但真要是自己去实现,其实也并非是一件很难的事。v 任何动画的最基本的前提,是要在足够快的时间内
10、显示和更换一张张的图片,让人的眼睛看到动的画面效果。图片必须按照顺序画出来。v 从一张图片到下一张图片之间的变化越小,效果会越好。首先要做的,是使用你的图片处理软件(比如Photoshop或者Firework)创建一系列相同大小的图片来组成动画。v 每张图片代表动画一帧。你需要制作一定数量的帧越多的帧会让你的动画看上去越平滑。制作好的图片一定要保存成PNG格式。v 有两个办法让你刚做好的图片在MIDlet上变成动画。第一,把图片都放到一个Web服务器上,让MIDlet下载他们,MIDP内置的HTTP支持。v 第二个办法更简单,把图片用MIDlet打包成JAR文件。如果你使用的是J2ME开发工具
11、,把PNG文件放到你的项目文件里面就可以了。v 动画的过程其实更像账本记录:显示当前帧,然后适当地更换到下一帧。7.4 手机游戏2D动画开发 7.4.1 MIDP 2.0 2D游戏开发v MIDP 2.0相对于1.0来说,最大的变化就是新添加了用于支持游戏的API,它们被放在javax.microedition.lcdui.game 包中。v 游戏API包提供了一系列针对无线设备的游戏开发类。v 由于无线设备仅有有限的计算能力,因此许多API的目的在于提高Java游戏的性能,并且把原来很多需要手动编写的代码如屏幕双缓冲、图像剪裁等都交给API间接调用本地代码来实现。v 各厂家有相当大的自由来优
12、化它们。游戏API使用了MIDP的低级图形类接口(Graphics,Image等)。整个游戏包仅有5个Class。v 1GameCanvasv 2Layerv 3LayerManagerv 4Spritev 5TiledLayer 7.4.2 GameCanvas的使用v GameCanvas类提供了基本的游戏用户接口。v 除了从Canvas 继承下来的特性(命令,输入事件等)以外,它还提供了专门针对游戏的功能,如后备屏幕缓冲和键盘状态查询的能力。每个GameCanvas 实例都会有一个唯一的缓冲区。v 1绘图v 2键盘 7.4.3 Sprite的使用v Sprite 是一个基本的可视元素,可
13、以用存储在图像中的一帧或多帧来渲染它;轮流显示不同的帧可以令Sprite 实现动画。v 翻转、旋转等几种变换方式也能应用于Sprite 使其外观改变。作为Layer 子类,Sprite 的位置可以改变,并且还能设置其可视与否。v 1Sprite 帧v 用于渲染Sprite的原始帧由一个单独的Image对象提供,此Image可以是可变的,也可以是不可变的。图图7-4 7-4 帧的分解帧的分解 v 2帧序列v Sprite 的帧序列定义了帧以什么样的顺序来显示。图图7-5 7-5 帧的序列帧的序列 v Special Frame Sequence 图图7-6 7-6 帧的特定序列帧的特定序列 图图
展开阅读全文