欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPTX文档下载  

    手机游戏开发课件.pptx

    • 资源ID:3467819       资源大小:1.81MB        全文页数:138页
    • 资源格式: PPTX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    手机游戏开发课件.pptx

    2019年5月8日,感谢你的观看,兰州石化学院 Page 1,第7章 手机游戏开发,2019年5月8日,感谢你的观看,兰州石化学院 Page 2,游戏是策划、美工和程序三者的协调及创意和商业运作的平衡。集美术、音乐、动画、人工智能等元素于一身。,2019年5月8日,感谢你的观看,兰州石化学院 Page 3,目前支持Java的手机性能越来越强大,同时,手机的价格在不断地下降,因此,手机游戏的市场前景将是非常良好的。本章将从图片的处理、动画的制作和音效的实现来学习手机游戏开发的基础知识。,2019年5月8日,感谢你的观看,兰州石化学院 Page 4,2019年5月8日,感谢你的观看,兰州石化学院 Page 5,2019年5月8日,感谢你的观看,兰州石化学院 Page 6,7.1 手机游戏开发简介,现在的移动电话可以看作小型的计算机,只是它的处理能力与PC相比很有限,但是足够运行一个小型的游戏。,2019年5月8日,感谢你的观看,兰州石化学院 Page 7,另一个特性就是它们还是网络计算机,能够高速发送和接收数字数据。除了语音数据以外,它们还可以发送和接收其他类型的数据。,2019年5月8日,感谢你的观看,兰州石化学院 Page 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 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全名Portable Network Graphics,字面意思是“可移植性网络用图形”,从这简单几个字已经明白定义了PNG的用途以及主要发展方向。,2019年5月8日,感谢你的观看,兰州石化学院 Page 17,1996年,PNG Group向W3C(World Wide Web Consortium)提出一种多媒体图形格式,重点在于改进现有JPG跟GIF的缺点,并且提供更多新的概念与压缩模式,在提出后得到W3C的认可与推荐。,2019年5月8日,感谢你的观看,兰州石化学院 Page 18,在1996年10月1号,W3C正式发函公告,推荐PNG为最佳的图形格式,并且以“PNG Delivers Higher Quality Graphics for Web Page Design”的文字作为该文件的标头。,2019年5月8日,感谢你的观看,兰州石化学院 Page 19,7.2.2 PNG的图档格式特性 PNG保留了大部分GIF的特性,PNG的压缩率很高,尤其是图表型的图片,2019年5月8日,感谢你的观看,兰州石化学院 Page 20,7.2.3 PNG格式图像的压缩及处理 PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成。,2019年5月8日,感谢你的观看,兰州石化学院 Page 21,PNG定义了两种类型的数据块,一种是称为关键数据块(critical chunk),这是标准的数据块,另一种叫做辅助数据块(ancillary chunks),这是可选的数据块。,2019年5月8日,感谢你的观看,兰州石化学院 Page 22,7.2.4 使用PNG图片 在MIDP具体实现中,Images可以是可变的也可以是不可变的。,2019年5月8日,感谢你的观看,兰州石化学院 Page 23,不可变的Image可以从二进制图像文件创建,如果要用二进制图像数据来创建Image,这些数据必须是设备支持的格式。,2019年5月8日,感谢你的观看,兰州石化学院 Page 24,有的设备可能会支持额外的一些格式,不过所有设备都必须支持PNG格式。在手机中使用PNG图片,必须先把图片加载到内存,并且实例化成为一个Image对象。,2019年5月8日,感谢你的观看,兰州石化学院 Page 25,Image对象的构造方法如下:public static Image createImage(String name),2019年5月8日,感谢你的观看,兰州石化学院 Page 26,图7-2 旋转的“X”,2019年5月8日,感谢你的观看,兰州石化学院 Page 27,7.2.5 游戏菜单制作 当玩家在菜单项中选择了某选项后,系统给玩家返回的界面应该不同。,2019年5月8日,感谢你的观看,兰州石化学院 Page 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.3.2 双缓冲技术 双缓冲技术是编写J2ME游戏程序的关键技术之一。实际上,双缓冲技术是计算机动画的一项传统技术。,2019年5月8日,感谢你的观看,兰州石化学院 Page 33,造成屏幕闪烁的主要原因在于,画面在显示的同时,程序又在改变它。解决办法就是在内存中开辟一片区域作为后台画面,程序对它更新、修改,完成后再显示它。,2019年5月8日,感谢你的观看,兰州石化学院 Page 34,这样被显示的图像永远是已经完全画好的图像,程序修改的将不是正在被显示的图像。当然还有其他方法可以解决屏幕闪烁问题,但使用双缓冲技术是一种值得推荐的解决方案。,2019年5月8日,感谢你的观看,兰州石化学院 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()语句,它的功能是告知系统调用paint()来完成真实屏幕的显示。,2019年5月8日,感谢你的观看,兰州石化学院 Page 39,(4)在paint(Graphics g)方法里,将buf(缓冲屏幕上的图片)画到真实屏幕上。,2019年5月8日,感谢你的观看,兰州石化学院 Page 40,7.3.3 图片的裁剪 我们可以通过设定裁剪的区域来显示图片的一个片断,使用前面讲的方法:setClip()getClipX()getClipY()getClipWidth()getClipHeight(),2019年5月8日,感谢你的观看,兰州石化学院 Page 41,创建裁剪区域的步骤如下。(1)声明类的引用。(2)创建类的实例,并赋值给这些类引用。(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月8日,感谢你的观看,兰州石化学院 Page 45,7.3.4 播放动画框架 开发MIDP的程序员经常会在一个MIDlet上显示动画。MIDP 1.0没有直接提供对动画的支持(正在开发中的MIDP 2.0支持),但真要是自己去实现,其实也并非是一件很难的事。,2019年5月8日,感谢你的观看,兰州石化学院 Page 46,任何动画的最基本的前提,是要在足够快的时间内显示和更换一张张的图片,让人的眼睛看到动的画面效果。图片必须按照顺序画出来。,2019年5月8日,感谢你的观看,兰州石化学院 Page 47,从一张图片到下一张图片之间的变化越小,效果会越好。首先要做的,是使用你的图片处理软件(比如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文件。如果你使用的是J2ME开发工具,把PNG文件放到你的项目文件里面就可以了。,2019年5月8日,感谢你的观看,兰州石化学院 Page 51,动画的过程其实更像账本记录:显示当前帧,然后适当地更换到下一帧。,2019年5月8日,感谢你的观看,兰州石化学院 Page 52,7.4 手机游戏2D动画开发,7.4.1 MIDP 2.0 2D游戏开发 MIDP 2.0相对于1.0来说,最大的变化就是新添加了用于支持游戏的API,它们被放在javax.microedition.lcdui.game 包中。,2019年5月8日,感谢你的观看,兰州石化学院 Page 53,游戏API包提供了一系列针对无线设备的游戏开发类。,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 5TiledLayer,2019年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的使用 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 帧的分解,2019年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()和getY()。,2019年5月8日,感谢你的观看,兰州石化学院 Page 69,4Sprite 的变换 几种变换可应用于Sprite。可用的变换包括旋转几个90 度加上镜像(沿垂直轴)。,2019年5月8日,感谢你的观看,兰州石化学院 Page 70,图7-8 Reference Pixel,2019年5月8日,感谢你的观看,兰州石化学院 Page 71,图7-9 参考像素点被定位在树枝末端,2019年5月8日,感谢你的观看,兰州石化学院 Page 72,图7-10 Sprite的变换,2019年5月8日,感谢你的观看,兰州石化学院 Page 73,图7-11 90度旋转的变换,2019年5月8日,感谢你的观看,兰州石化学院 Page 74,7.4.4 碰撞检测 Sprite 非常适合移动的物体,如游戏主角、敌人等,在游戏中,可以使用Sprite 提供的碰撞检测功能来简化游戏逻辑。,2019年5月8日,感谢你的观看,兰州石化学院 Page 75,Sprite的碰撞检测可以分两种:一种是矩形碰撞检测,另一种是像素碰撞检测。游戏中Sprite的大小往往是用包围它的矩形的大小来表示的,如在图7-12中的飞机和导弹并没有发生碰撞但检查的结果却发生了碰撞。,2019年5月8日,感谢你的观看,兰州石化学院 Page 76,图7-12 矩形碰撞检测,2019年5月8日,感谢你的观看,兰州石化学院 Page 77,对于像素碰撞检测,往往把Sprite的背景色设置为相同的颜色,碰撞检查的时候就只判断两个图片除背景色以外的其他像素是否发生了重叠。,2019年5月8日,感谢你的观看,兰州石化学院 Page 78,像素碰撞检测比较精确,但计算复杂,一般没有特殊要求都使用矩形碰撞检测。下面的例子两个矩形发生了碰撞但飞机和导弹并没有发生碰撞,如图7-13所示。,2019年5月8日,感谢你的观看,兰州石化学院 Page 79,图7-13 像素碰撞检测,2019年5月8日,感谢你的观看,兰州石化学院 Page 80,要判断两个Sprite 是否碰撞,或者与其他Layer 是否碰撞,可以使用collidesWith()方法。CollidesWith()共有三种形式:,2019年5月8日,感谢你的观看,兰州石化学院 Page 81,(1)public final boolean collidesWith(Sprite s,Boolean pixelLevel),2019年5月8日,感谢你的观看,兰州石化学院 Page 82,(2)public final boolean collidesWith(TitledLayer t,Boolean pixelLevel),2019年5月8日,感谢你的观看,兰州石化学院 Page 83,(3)public final boolean collidesWith(Image image,int x,int y,Boolean pixelLevel),2019年5月8日,感谢你的观看,兰州石化学院 Page 84,7.4.5 Layer的使用 Layer 是一个抽象类,表示游戏中的一个可视元素。,2019年5月8日,感谢你的观看,兰州石化学院 Page 85,1TiledLayer TiledLayer 由一系列单元格组成,单元格可被一组贴图填充。,2019年5月8日,感谢你的观看,兰州石化学院 Page 86,图7-14 TiledLayer,2019年5月8日,感谢你的观看,兰州石化学院 Page 87,每个贴图都被赋予一个唯一的索引号。除了静态贴图外,开发者同样能够定义一系列动态贴图(animated tiles)。,2019年5月8日,感谢你的观看,兰州石化学院 Page 88,动态贴图允许开发者能非常容易地改变一组单元格的外观。,2019年5月8日,感谢你的观看,兰州石化学院 Page 89,图7-15 TiledLayer背景,2019年5月8日,感谢你的观看,兰州石化学院 Page 90,图7-16 TiledLayer动态贴图,2019年5月8日,感谢你的观看,兰州石化学院 Page 91,2LayerManager LayerManager管理一系列的Layer。,2019年5月8日,感谢你的观看,兰州石化学院 Page 92,可视窗口(view window)控制着可视区域及其在LayerManager 的坐标系统中的位置。,2019年5月8日,感谢你的观看,兰州石化学院 Page 93,图7-17 相对原点,2019年5月8日,感谢你的观看,兰州石化学院 Page 94,paint(Graphics,int,int)方法包含一个(x,y)坐标,控制可视窗口在屏幕中的显示位置。,2019年5月8日,感谢你的观看,兰州石化学院 Page 95,图7-18 控制可视窗口显示位置,2019年5月8日,感谢你的观看,兰州石化学院 Page 96,为了添加一个Layer,使用append()方法向这个LayerManager 添加一个Layer。,2019年5月8日,感谢你的观看,兰州石化学院 Page 97,7.5 手机音效开发,现在能播放音乐的手机已经是很常见的了,同时手机游戏也需要声音来增加动感效果,所以手机音效也成为了开发热点。,2019年5月8日,感谢你的观看,兰州石化学院 Page 98,J2ME针对多种媒体格式,提供了一套播放接口,那就是:MMAPI(Mobile Media API)。,2019年5月8日,感谢你的观看,兰州石化学院 Page 99,7.5.1 MMAPI体系结构 现在多媒体的格式很多,要顺利地播放这些不同格式的音乐,一种比较好的方式就是把这些不同格式的数据都转换为统一的格式,然后统一使用一个播放器接口类来播放。,2019年5月8日,感谢你的观看,兰州石化学院 Page 100,在MMAPI中,首先从数据源(如一个文件、一个捕获装置或一个流式服务)上读取媒体数据内容后,然后传输给专门的处理程序进行处理。,2019年5月8日,感谢你的观看,兰州石化学院 Page 101,处理过程主要是由DataSource类和Player类完成。DataSource类的作用就是读取和转换多媒体数据,Player类的作用就是播放这类数据。,2019年5月8日,感谢你的观看,兰州石化学院 Page 102,然后提供一系列的播放、暂停、停止等播放器相关功能,DataSource类和Player类的工作过程如图7-19所示。,2019年5月8日,感谢你的观看,兰州石化学院 Page 103,图7-19 数据流图,2019年5月8日,感谢你的观看,兰州石化学院 Page 104,7.5.2 Player接口 要使用MMAPI进行音效开发,首先需要导入相关的开发包,例如:import javax.microedition.media.*,2019年5月8日,感谢你的观看,兰州石化学院 Page 105,创建一个Player对象有3种不同的方式,也就是用Manager类的不同构造方法,Manager类一共有三个构造方。,2019年5月8日,感谢你的观看,兰州石化学院 Page 106,(1)Public static Player createPlayer(java.lang.string locator)throws java.io.IOException,MediaException,2019年5月8日,感谢你的观看,兰州石化学院 Page 107,(2)Public static Player createPlayer(DataSource source)throws java.io.IOException,MediaException,2019年5月8日,感谢你的观看,兰州石化学院 Page 108,(3)Public static Player createPlayer(java.io.InputStream stream,java.lang.String trpe)throws java.io.IOException,MediaException,2019年5月8日,感谢你的观看,兰州石化学院 Page 109,这三个方法分别可以读取指定路径的数据源或者DataSource和InpurStream类型的数据源,分别返回一个Player,当一个Player对象被创建以后,使用Player接口的start()方法就会尽可能快地启动数据的播放,当数据播放完毕以后,Player会自动关闭。,2019年5月8日,感谢你的观看,兰州石化学院 Page 110,1UNREALIZED 状态 2REALIZED状态 3PREFETCHED状态 4STARTED状态 5CLOSED状态,2019年5月8日,感谢你的观看,兰州石化学院 Page 111,图7-20 状态转换图,2019年5月8日,感谢你的观看,兰州石化学院 Page 112,7.5.3 播放简单音调 声音的高低叫音调,也就是音符的频率,J2ME提供了对简单音调播放的支持,MMAPI提供了一个Manager.playTone()方法来播放音调。,2019年5月8日,感谢你的观看,兰州石化学院 Page 113,使用Manager.playTone(),需要指定三个参数:音符、播放时间和声音的大小。例如下面的代码播放了一个C4的音调,C4音调是由ToneControl类的常量C4指定的。,2019年5月8日,感谢你的观看,兰州石化学院 Page 114,7.5.4 播放歌曲 使用MMAPI播放歌曲很简单,主要是用Player的createPlayer构造方法,只要指定网络地址,Player就会自动的下载歌曲并播放,具体构造方法如下。,2019年5月8日,感谢你的观看,兰州石化学院 Page 115,public static Player createPlayer(String locator)throws IOException,MediaException,2019年5月8日,感谢你的观看,兰州石化学院 Page 116,为了很好地控制歌曲的播放状态,需要MIDlet程序实现一个PlayerListener接口,同时实现该接口中的playerUpdate()方法。,2019年5月8日,感谢你的观看,兰州石化学院 Page 117,public void playerUpdate(Player player,String event,Object eventDate),2019年5月8日,感谢你的观看,兰州石化学院 Page 118,在playerUpdate方法里可以判断播放的状态,例如判断播放是否结束可以用PlayerListener.END_OF_MEDIA进行判断。,2019年5月8日,感谢你的观看,兰州石化学院 Page 119,public void playerUpdate(Player player,String event,Object eventDate)if(event=PlayerListener.END_OF_MEDIA),2019年5月8日,感谢你的观看,兰州石化学院 Page 120,为了提高播放效率,又不影响其他程序的运行,可以使用线程,只要实现Runnable接口即可。,2019年5月8日,感谢你的观看,兰州石化学院 Page 121,如果想在播放过程中,对播放进行暂停或者停止等操作,都要对播放器的各种状态进行判断,,2019年5月8日,感谢你的观看,兰州石化学院 Page 122,图7-21 播放网络资源,2019年5月8日,感谢你的观看,兰州石化学院 Page 123,7.5.5 控制音量 音量的控制可以使用VolumeControl控件接口,它允许设置音量的变化范围是从0100,其中0表示静音。,2019年5月8日,感谢你的观看,兰州石化学院 Page 124,VolumeControl控件接口的使用很简单,使用getLevel()方法得到当前的音量级别,也可以使用setLevel()方法设置音量级别,静音使用setMute()方法来设置,要判断是否静音可以使用isMute()方法。,2019年5月8日,感谢你的观看,兰州石化学院 Page 125,具体获得一个VolumeControl控件的代码如下:VolumeControl volume=(VolumeControl)player.getControl(VolumeControl);volume.setLevel(VOLUME_LEVEL);,2019年5月8日,感谢你的观看,兰州石化学院 Page 126,7.6 综合示例:飞机碰撞,本例子是在背景为星空的屏幕上显示两架飞机,通过手机的键盘可以控制飞机的相对位置,当两架飞机碰撞的时候可以显示爆炸。,2019年5月8日,感谢你的观看,兰州石化学院 Page 127,同时播放爆炸的声音。本例用到了前面学习过的动画和音效开发的知识。由于飞机的碰撞除了背景还有两个飞机和一个爆炸图层,所以使用了一个LayerManager类来管理多个图层,这样能很方便的使用碰撞方法。,2019年5月8日,感谢你的观看,兰州石化学院 Page 128,碰撞的检测很简单,可以使用collidesWith()方法,如果碰撞该方法返回true。,2019年5月8日,感谢你的观看,兰州石化学院 Page 129,Sprite plane1,plane2;/使用像素碰撞检测,如果碰撞该方法返回trueBoolean collide=plane1.collidesWith(plane2);,2019年5月8日,感谢你的观看,兰州石化学院 Page 130,当发生碰撞时,把两个飞机设置为不可见,把爆炸的图片显示出来,这样就构成了爆炸的场景。,2019年5月8日,感谢你的观看,兰州石化学院 Page 131,为了具有声音效果,要有一个用来播放音乐的类PlayMusic,在这个类里完成读取和播放音乐文件的功能。,2019年5月8日,感谢你的观看,兰州石化学院 Page 132,图7-22 执行效果图,2019年5月8日,感谢你的观看,兰州石化学院 Page 133,7.7 小 结,本章的内容很多,主要介绍了PNG格式图像的由来,详细介绍了PNG格式图像的特性和压缩处理。,2019年5月8日,感谢你的观看,兰州石化学院 Page 134,针对手机的特点,详细的给读者介绍了如何在手机游戏中使用PNG格式图像,由于游戏菜单是游戏的一个必须部分,最后使用范例介绍了游戏菜单的制作。,2019年5月8日,感谢你的观看,兰州石化学院 Page 135,及在J2ME中如何实现动画,由于在J2ME中实现动画要涉及多线程技术,所以详细介绍了Java中的线程技术,双缓存技术以及图片的裁剪技术,让读者掌握什么是线程及怎样使用多线程实现动画。,2019年5月8日,2019年5月8日,感谢你的观看,兰州石化学院 Page 137,最后提供了一个播放动画程序框架。让读者对实现动画有一个完整的概念和理解。在最后介绍了手机音效的开发,介绍了如何播放简单音调和歌曲及音量的控制。,2019年5月8日,

    注意事项

    本文(手机游戏开发课件.pptx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开