首页 > 科技 > Java游戏高级编程:部署框架+Swing动画+持假数据+游戏体系结构等

Java游戏高级编程:部署框架+Swing动画+持假数据+游戏体系结构等

本文专门针对具有丰富经验、正准备和渴望将他们独特的游戏设计思想转换为部署实体的Java开发人员。对这些读者而言,从想了解有趣的游戏特定逻辑以来,一直在学习Java编程语言和实现基本的基础结构代码。

走进Java游戏高级编程的世界

配置开发环境

本节主要介绍了怎样使用开发构建工具Ant,编译所使用的示例代码。还介绍了其他一些开发工具,例如图像和音频编辑器。另外,还指出了一些代码和多媒体资源,您可以将这些资源集成到您的游戏中,其间还附加介绍了开放源代码的许可条款问题。本节最后还给出了一个示例游戏的源代码,用来介绍Java游戏程序编写的基本知识,这个示例游戏还可以作为一个游戏模板进行重新利用。在后续的章节中,将详细介绍可重用游戏库中可用的一些类。

部署框架

本章主要介绍了3种标准的Java游戏部署框架:基于浏览器的applet、可执行的JAR文件和Java Web Start。深入讨论了每种部署框架的优缺点,以及包括安全性在内的各种不同特性。这一章还介绍了创建自己游戏的多种编程的技术,包括动画线程管理、使用定制接口和动态链接来分离可选包、外部浏览器通过JNLP访问、将帧用作单独的容器、使用Swing显示Web页面。本章最后对MultiApplet的源代码进行了详细的研究,这个MultiApplet是一个可以直接用来部署游戏的可重用框架。

Swing动画

本章主要介绍了4个基本的动画类:ComponentAnimator、RepaintCollector、LoopGovemor和AnimatedComponent。接口ComponentAnimator的实现提供了应用程序特定的大部分代码,因为它给出了更新精灵位置的游戏逻辑。作为一股用途的RepaintCollector和LoopGovemor实现以及AnimatedComponent组成了基于Swing动画引擎可重用的核心。掌握这些类的操作和互操作对于调整动画的性能而言是至关重要的。

动画库

本章介绍了多个ComponentUpdater、ComponentPainter、ComponentAnimator 和Sprite的实现,这些实现与前面几章中介绍的核心动画引擎类都是一致的。这些实现都是为了解释怎样实现您游戏中特定的类和构造自己的可重用动画库。

高级图形技术

对那些带有透明背景的硬件加速图像来说,在将图像加载到内存中的时候,请使用ImageLib类的静态方法loadAutomaticlmageO,而不是直接实例化Volatilelmage.如果update0方法或paint0方法太慢,以至于防碍了在事件分派线程中及时地处理用户输入,那么请使用BufferedAnimatedComponent来代替AnimatedComponent.如果遇到了锯齿或需要改变显示模式,请使用全屏独占模式,但是同时要保证游戏在没有全屏独占模式时也能够很好地运行。

持久数据

我强烈推荐您使用SerializableLib中具有“稳固持久性”的save()和load()这两个非常好用的方法,将您在持久性数据方面的工作量降到最小。除非您有更合理的理由选择其他方法,否则可以坚持使用对象串行化来保存和加载游戏数据。这样做的效果一般都很好。如果觉得不够好,可能仍然会启SerializableLib方法作为最初客户端持久性数据的实现,并进行调整以获得更好的效率,直到游戏其余的部分全部完成。记住,通常都希望能够尽快地获得这种基础构造,并继续进行有意义的程序设计。

游戏体系结构

介绍游戏体系结构的这一章可以归纳为下面这些设计规则:

  • 尽可能使用接口引用代替具体类的引用。
  • 避免白盒继承,并使用通过接口组合的设计来代替白盒引用。
  • 将游戏分解为相互独立的模型、视图和控制器组件。
  • 使用一个虚拟世界类来创建、存储和检索游戏的实体模型。
  • 将游戏循环的模型更新阶段分为单独的准备和更新这两步。
  • 正常的控制器和模型交互作用的外部逻辑应归于游戏类。
  • 游戏没有视图和控制器就否可以自己运行。
  • 游戏世界视图只为游戏世界里的游戏实体模型提供视图。
  • 在用户界面屏幕上的所有其他对象都由游戏视图提供。
  • Main类将模型、视图和控制器装配到一个可运行的游戏中。
  • 数据驱动的体系结构是高可重用的。

由于文章篇幅过长,小编就不一 一列出了,简单的用目录图展现一下,需要这份资料的小伙伴可以关注+转发,然后私信我关键字“Java”,进行领取。


由于文章篇幅过长,小编就不一 一列出了,简单的用目录图展现一下,需要这份资料的小伙伴可以关注+转发,然后私信我关键字“Java”,进行领取。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/259989.html