Java游戏编程原理与实践教程 作者 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第4章--陈锐 夏敏捷主编.pptVIP

Java游戏编程原理与实践教程 作者 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第4章--陈锐 夏敏捷主编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.9 游戏声音效果设定 Java提供了丰富的API用于对声音进行处理和播放,其中最常用的是一个使用数字化样本文件工作的包,专门用于载入声音文件并通过音频混合器进行播放。该包叫做javax.sound.sampled, 其所支持的声音文件格式有以下几种:AIFF, AU , WAV。 Java中播放声音文件与显示图像文件一样方便,同样只需要先将声音文件装载进来,然后播放就行了。下面以WAV文件的播放为例来进行说明。首光需要打开声音文件并读取其中的信息,这主要包括如下步骤: (1)新建一个文件对象获取wav文件数据 File file = new File(sound.wav); (2)将wav文件转换为音频输入流 AudioInputStream stream = AudioSystem.getAudioInputStream(file); (3)获取音频格式 AudioFormat format = stream.getFormat(); Java游戏编程原理与实践教程 主编 陈锐 夏敏捷 人民邮电出版社 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 游戏开发是艺术与科学的结合,是策划,美术,程序三者间的协调以及创意与商业的平衡,集故事、音乐、动画等多元素于一身。 目前Java不仅可以开发台式机游戏,而且随着智能手机的普及,目前支持Java的手机性能上已经接近第二代控制台游戏机,因此手机游戏大规模使用的时代已经来临,可见Java 游戏开发市场广大。 第4章 Java游戏程序的基本框架 4.1 动画的类型及帧频 动画的制作是游戏设计的基础,几乎所有的游戏都是在动画的基础上添加人机交互功能、以及增加剧情功能等等延伸来的。因此动画的制作是游戏开发的必须了解的知识,也是游戏制作基本元素。 4.1.1 动画类型 动画主要分为影视动画和游戏动画两种。影视动画就是使用专业动画软件编辑出来的效果很好的动画视频,投影机以每秒二十四格的速度投射在银慕上. 游戏动画则不同于影视动画,是在屏幕上显示一系列连续动画画面的第一帧图形,然后在每隔很短的时间显示下一帧图像,如此反复 4.1.2 设置合理的帧频FPS FPS顾名思义,就是每秒钟的帧数。每一帧就是一幅静态图像,电影的播放速度是24FPS,但是一般游戏速度达到10FPS就明显感觉到动画的效果了。 4.2 游戏动画的制作 4.2.1 绘制动画以及动画循环 既然动画就是将一连串的图像快速的循环播放,所以就需要使用循环语句控制图像的连续播放,由于动画需要一定的播放速度,因此需要连续播放动画的同时能够控制动画的播放速度,最好使用线程中的暂停函数来实现。 while(true){ 处理游戏功能; 使用repaint()函数要求重画屏幕 暂停一小段时间;//帧频FPS控制 } 4.2.2 消除动画闪烁现象——双缓冲技术 一个动画在运行的时候,如果图像的切换是在屏幕上完成的,则可能会造成屏幕的闪烁,消除动画闪烁现象的最佳方法是使用双缓存技术。 双缓冲技术的工作原理:先在内存中分配一个和我们动画窗口一样大的空间(在内存中的空间我们是看不到的),然后利用getGraphics()方法去获得双缓冲画笔,接着利用双缓冲画笔给空间我们想画的东西,最后将它全部一次性的显示到屏幕上.这样在我门的动画窗口上面是显示出来就非常的流畅了.避免了上面的闪烁效果。 4.3 使用定时器 定时器在游戏开发中是相当重要的,前面提到动画的实现就是通过显示时间的控制达到视觉暂停的效果,除了使用线程的暂停函数sleep()函数外,还有一个重要的计时工具,那就是Timer组件。 Timer组件可以定时执行任务,这在游戏动画编程上非常有用。Timer组件可以使javax.swing.Timer包中的Timer类来实现,该类的构造方法为: Timer(int delay, ActionListener listener); 在游戏编程中,在组件内容更新时经常用到Timer,例如JPanel、JLabel等内容更新。本书中俄罗斯方块游戏就采用定时器Timer实现控制方块的下落的。 下面是一个简单的每隔500毫秒显示时间的Swing程序3-2,可以加深对Timer的使用的理解。 4.4 设置游戏难度 一般来说,一款游戏要增强它的可玩性,就需要有合理的游戏难度,使玩家不容易感觉厌烦,同时增加玩家者的挑战欲望。例如智力游戏可以在人工智能方面下功夫,但是由于人工智能在游戏里面很难真正的控制游戏本身的难度,所以往往使通过其他的手段实现游戏的难度控制,比较增加游戏进行的速度,比如俄罗斯方块,可以增加方块下落的速度。

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档