手机游戏开发课件.pptx
《手机游戏开发课件.pptx》由会员分享,可在线阅读,更多相关《手机游戏开发课件.pptx(138页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2019 年5 月8 日感谢你的观看 兰州石化学院 Page 1 第7章 手机游戏开发2019 年5 月8 日感谢你的观看 兰州石化学院 Page 2 游戏是策划、美工和程序三者的协调及创意和商业运作的平衡。集美术、音乐、动画、人工智能等元素于一身。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 3 目前支持Java的手机性能越来越强大,同时,手机的价格在不断地下降,因此,手机游戏的市场前景将是非常良好的。本章将从图片的处理、动画的制作和音效的实现来学习手机游戏开发的基础知识。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 4 手机游戏开发简介7.1 PNG图像格式
2、介绍7.2游戏设计中的动画7.3手机游戏2D动画开发7.42019 年5 月8 日感谢你的观看 兰州石化学院 Page 5 手机音效开发7.5综合示例:飞机碰撞7.6小结7.72019 年5 月8 日感谢你的观看 兰州石化学院 Page 67.1 手机游戏开发简介现在的移动电话可以看作小型的计算机,只是它的处理能力与PC相比很有限,但是足够运行一个小型的游戏。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 7 另一个特性就是它们还是网络计算机,能够高速发送和接收数字数据。除了语音数据以外,它们还可以发送和接收其他类型的数据。2019 年5 月8 日感谢你的观看 兰州石化学院 Pa
3、ge 8 所以类似传奇、千年这样的网络游戏将来也可以在手机上实现。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 9 但是与PC相比,它们的输入和显示功能也很有限。手机的屏幕都较小,其对声音处理能力也很有限。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 10 开发者在这样的平台上开发应用,必须认真的考虑这些特点。本节将重点讨论手机本身的特点和手机游戏开发的特点。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 11 7.1.1 手机游戏的类型 1嵌入式游戏 2短信息服务游戏 3WAP浏览器游戏2019 年5 月8 日感谢你的观看 兰州石化学院 Page
4、 12 图7-1 WAP游戏的工作原理图2019 年5 月8 日感谢你的观看 兰州石化学院 Page 13 7.1.2 手机游戏开发特点 1庞大的潜在用户群 2便携性 3屏幕小2019 年5 月8 日感谢你的观看 兰州石化学院 Page 14 4有限的颜色和声音支持 5应用程序大小限制 6高等待时间 7可中断性是关键2019 年5 月8 日感谢你的观看 兰州石化学院 Page 15 7.1.3 扬长避短的手机游戏开发 1缩短每回合的游戏时间 2合理处理等待时间2019 年5 月8 日感谢你的观看 兰州石化学院 Page 16 7.2 PNG图像格式介绍 7.2.1 PNG的由来PNG全名Por
5、tableNetworkGraphics,字面意思是“可移植性网络用图形”,从这简单几个字已经明白定义了PNG的用途以及主要发展方向。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 17 1996年,PNGGroup向W3C(WorldWideWebConsortium)提出一种多媒体图形格式,重点在于改进现有JPG跟GIF的缺点,并且提供更多新的概念与压缩模式,在提出后得到W3C的认可与推荐。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 18 在1996年10月1号,W3C正式发函公告,推荐PNG为最佳的图形格式,并且以“PNGDeliversHigherQua
6、lityGraphicsforWebPageDesign”的文字作为该文件的标头。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 19 7.2.2 PNG的图档格式特性PNG保留了大部分GIF的特性,PNG的压缩率很高,尤其是图表型的图片2019 年5 月8 日感谢你的观看 兰州石化学院 Page 20 7.2.3 PNG格式图像的压缩及处理PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNGfilesignature)域和按照特定结构组织的3个以上的数据块(chunk)组成。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 21 PNG定义了两种
7、类型的数据块,一种是称为关键数据块(criticalchunk),这是标准的数据块,另一种叫做辅助数据块(ancillarychunks),这是可选的数据块。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 22 7.2.4 使用PNG图片在MIDP具体实现中,Images可以是可变的也可以是不可变的。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 23 不可变的Image可以从二进制图像文件创建,如果要用二进制图像数据来创建Image,这些数据必须是设备支持的格式。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 24 有的设备可能会支持额外的一些格式,
8、不过所有设备都必须支持PNG格式。在手机中使用PNG图片,必须先把图片加载到内存,并且实例化成为一个Image对象。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 25 Image对象的构造方法如下:publicstaticImagecreateImage(Stringname)2019 年5 月8 日感谢你的观看 兰州石化学院 Page 26 图7-2 旋转的“X”2019 年5 月8 日感谢你的观看 兰州石化学院 Page 27 7.2.5 游戏菜单制作当玩家在菜单项中选择了某选项后,系统给玩家返回的界面应该不同。2019 年5 月8 日感谢你的观看 兰州石化学院 Page
9、28 下例菜单选项包括:新游戏、高分榜、帮助和退出。其他屏幕包括:游戏中的界面、查看高分榜的界面、查看帮助的界面。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 29 图7-3 游戏的菜单界面2019 年5 月8 日感谢你的观看 兰州石化学院 Page 30 7.3 游戏设计中的动画 7.3.1 动画基础 1什么是动画动画是通过连续播放一系列画面,给人的视觉造成连续变化的图画。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 31 2动画制作应注意的问题(1)速度的处理(2)循环动画(3)夸张与拟人2019 年5 月8 日感谢你的观看 兰州石化学院 Page 32 7
10、.3.2 双缓冲技术双缓冲技术是编写J2ME游戏程序的关键技术之一。实际上,双缓冲技术是计算机动画的一项传统技术。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 33 造成屏幕闪烁的主要原因在于,画面在显示的同时,程序又在改变它。解决办法就是在内存中开辟一片区域作为后台画面,程序对它更新、修改,完成后再显示它。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 34 这样被显示的图像永远是已经完全画好的图像,程序修改的将不是正在被显示的图像。当然还有其他方法可以解决屏幕闪烁问题,但使用双缓冲技术是一种值得推荐的解决方案。2019 年5 月8 日感谢你的观看 兰州石化学院
11、 Page 35 双缓冲思想体现在程序上就是要依次完成以下几步工作。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 36(1)定义一个Graphics 对象bg 和一个Image 对象buf,按屏幕大小建立一个缓冲对象附给buf,然后取得buf 的Graphics 对象附给bg。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 37(2)在bg(缓冲屏幕)上用drawImage()和drawString 等语句画图,相当于在缓冲屏幕上画图。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 38(3)调用repaint()语句,它的功能是告知系统调用pain
12、t()来完成真实屏幕的显示。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 39(4)在paint(Graphicsg)方法里,将buf(缓冲屏幕上的图片)画到真实屏幕上。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 40 7.3.3 图片的裁剪我们可以通过设定裁剪的区域来显示图片的一个片断,使用前面讲的方法:setClip()getClipX()getClipY()getClipWidth()getClipHeight()2019 年5 月8 日感谢你的观看 兰州石化学院 Page 41 创建裁剪区域的步骤如下。(1)声明类的引用。(2)创建类的实例,并赋值给这
13、些类引用。(3)当程序开始时,显示Canvas 类的实例。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 42(4)当Exit 时,终止MIDlet。(5)定义Canvas 的派生类,并实现CommandListener。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 43(6)请求保存图片所需的足够内存块。如果使用动态图像,就创建图像。否则确定图像包含什么静态图片文件名。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 44(7)从Paint()方法中判断图像是否创建成功或者图像是否打开成功。如果是创建一个新的裁剪区域,在画布上绘制图像。2019 年5
14、 月8 日感谢你的观看 兰州石化学院 Page 45 7.3.4 播放动画框架开发MIDP的程序员经常会在一个MIDlet上显示动画。MIDP1.0没有直接提供对动画的支持(正在开发中的MIDP2.0支持),但真要是自己去实现,其实也并非是一件很难的事。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 46 任何动画的最基本的前提,是要在足够快的时间内显示和更换一张张的图片,让人的眼睛看到动的画面效果。图片必须按照顺序画出来。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 47 从一张图片到下一张图片之间的变化越小,效果会越好。首先要做的,是使用你的图片处理软件(比如
15、Photoshop或者Firework)创建一系列相同大小的图片来组成动画。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 48 每张图片代表动画一帧。你需要制作一定数量的帧越多的帧会让你的动画看上去越平滑。制作好的图片一定要保存成PNG格式。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 49 有两个办法让你刚做好的图片在MIDlet上变成动画。第一,把图片都放到一个Web服务器上,让MIDlet下载他们,MIDP内置的HTTP支持。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 50 第二个办法更简单,把图片用MIDlet打包成JAR文件。如果你使
16、用的是J2ME开发工具,把PNG文件放到你的项目文件里面就可以了。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 51 动画的过程其实更像账本记录:显示当前帧,然后适当地更换到下一帧。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 527.4 手机游戏2D动画开发 7.4.1 MIDP 2.0 2D游戏开发MIDP2.0相对于1.0来说,最大的变化就是新添加了用于支持游戏的API,它们被放在javax.microedition.lcdui.game包中。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 53 游戏API包提供了一系列针对无线设备的游戏开发
17、类。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 54 由于无线设备仅有有限的计算能力,因此许多API的目的在于提高Java游戏的性能,并且把原来很多需要手动编写的代码如屏幕双缓冲、图像剪裁等都交给API间接调用本地代码来实现。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 55 各厂家有相当大的自由来优化它们。游戏API使用了MIDP的低级图形类接口(Graphics,Image等)。整个游戏包仅有5个Class。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 56 1GameCanvas 2Layer 3LayerManager 4Sprite
18、5TiledLayer2019 年5 月8 日感谢你的观看 兰州石化学院 Page 57 7.4.2 GameCanvas的使用GameCanvas类提供了基本的游戏用户接口。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 58 除了从Canvas继承下来的特性(命令,输入事件等)以外,它还提供了专门针对游戏的功能,如后备屏幕缓冲和键盘状态查询的能力。每个GameCanvas实例都会有一个唯一的缓冲区。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 59 1绘图 2键盘2019 年5 月8 日感谢你的观看 兰州石化学院 Page 60 7.4.3 Sprite的使用
19、Sprite是一个基本的可视元素,可以用存储在图像中的一帧或多帧来渲染它;轮流显示不同的帧可以令Sprite实现动画。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 61 翻转、旋转等几种变换方式也能应用于Sprite使其外观改变。作为Layer子类,Sprite的位置可以改变,并且还能设置其可视与否。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 62 1Sprite 帧用于渲染Sprite的原始帧由一个单独的Image对象提供,此Image可以是可变的,也可以是不可变的。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 63 图7-4 帧的分解201
20、9 年5 月8 日感谢你的观看 兰州石化学院 Page 64 2帧序列Sprite的帧序列定义了帧以什么样的顺序来显示。2019 年5 月8 日感谢你的观看 兰州石化学院 Page 65 图7-5 帧的序列 2019 年5 月8 日感谢你的观看 兰州石化学院 Page 66 图7-6 帧的特定序列 2019 年5 月8 日感谢你的观看 兰州石化学院 Page 67 图7-7 更新显示2019 年5 月8 日感谢你的观看 兰州石化学院 Page 68 3Reference Pixel作为Layer的一个子类,Sprite继承了很多方法来设置和获取位置,如setPosition(x,y),getX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手机 游戏 开发 课件
限制150内