内容是很必要的。由于其虚拟机的特点,可以使用 java 来完成游戏脚本的编辑,
是一种完全的面向对象语言,也就是说,开发者能在游戏中十分便利地扩展和继
承之前的代码,而不需要再重新开发新的类库。比如同一类游戏的引擎不用重复
的编写,只是替换游戏中涉及到的图片、音乐、动画、布局、组件等,就可以设
计出一个新的游戏,极大的节约的时间,节省人力物力的资源浪费。
(3)网络功能
Java 一向强于解决网络方面的问题,在这方面 Java 主要有两个优势,第一
是基于 Applet 和 Java Web Start 的游戏非常容易更新,不会像其他游戏那样需要
用户手动下载全新版本;第二是 Java 在网络交互的 Api 相对比较友好,而对于
大型网络游戏来说,分布式系统非常重要。Java 拥有强大的网络功能,能很容易
的和网页结合在一起发布到世界各地。游戏者只要通过浏览器就可体会到游戏所
带来的乐趣。这意味着,游戏将面临着拥有全世界的玩家这个巨大市场。
这些年由于 Java 技术的不断发展,Java 程序的运行速度有了显着提升,同
时硬件技术也在不断进步,从而使得 Java 处理比较复杂的 3D 图形成为可能。
Java 多线程模型、主动绘图,双缓冲技术、页面交换技术、Lwjgl、Jogl、Java3D
等技术的出现,使 Java 语言可以方便的利用现在的显卡日益强大的硬件加速能
力。实际上目前已经有许多基于 Java 的 2D 和 3D 游戏,其中不乏大型多人在线
游戏。
(1)Java 多线程模型
多线程的实现有两种方法,可以继承Thread类或者实现Runnable接口。众所
周知线程通过start方法后不是立即运行,而只有处于Runnable状态的线程会被调
度执行,被调度执行的线程此时就处于Running的状态,线程开始执行run方法,
线程将执行完成或者被调用interrupt方法中断成为Dead状态,线程执行过程中执
行任何对象的wait方法,执行sleep方法、或执行同步IO操作时会分别转换为
Waiting、Sleeping、Blocked的状态,这些都是Non-Runnable的状态,即使CPU有
空余时间,处于这些状态的线程也不会被调度运行,当导致他们停止运行的情况
解除时,他们可以重新转换为Runnable的状态,等待下次被调度运行。相对于Dead
状态,Runnable、Running、Non-Runnable的状态下的线程都是Alive的。在进行
动画编程时,我们经常接触的是sleep方法,该方法容许线程暂停一段指定的时间,