手机游戏开发.ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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