【网学提醒】:本文主要为网上学习者提供基于移动平台的Java游戏开发,希望对需要基于移动平台的Java游戏开发网友有所帮助,学习一下吧!
资料包括: 论文(75页18516字) 源码 图纸
说明:摘要:Java良好的跨平台特性在移动平台的开发中显示出了巨大的威力。Java语言面向对象的优势也使得开发游戏变得非常容易。本文通过实例介绍了基于移动平台的Java游戏开发须具备的基础知识和高级技巧,包括J2ME介绍、常用开发工具及其配置与使用、高级用户接口和低级用户接口的设计、架设OTA
下载服务器,以及如何适应多国语言、如何使用记录系统、如何使用线程和定时器、如何使用手机的高级特性等。
关键词:Java,J2ME,K-Java,手机游戏开发
Abstract: Java has an advantage of running in different platforms that shows its power in developing for the mobile device. The advantage of object-oriented of Java makes development of games easily. This thesis introduces the basic knowledge and the advanced skills to develop games for the mobile device, and includes introduction of J2ME, configuration and usage of the development tools in common use, High-level APIs and Low-level APIs’ designs, and how to build up an OTA download server, how to fit for multi-language, how to use the record system, how to use thread and timer, how to use the advanced characteristics of phones.
Key Words: Java; J2ME; K-Java; Mobile Game Development
目录:1引言1
1.1手机游戏概述1
1.2Java在手机中的应用1
1.3Java手机游戏的发展现状2
1.4Java手机游戏的发展前景3
2研究内容4
2.1J2ME4
2.2游戏开发技术4
2.2.1游戏开发中的面向对象技术4
2.2.2动画的制作4
2.2.3游戏中的多线程4
2.2.4游戏中的人工智能4
3研究成果5
3.1成果简介5
3.2用户界面关系图5
3.3对象类图6
3.4创新点和技术要点6
4基本知识7
4.1认识J2ME7
4.1.1Java概述7
4.1.2J2ME概述8
4.1.3CLDC、MIDP与MIDlet9
4.1.4Display与Displayable10
4.1.5Screen与Canvas11
4.1.6第一个手机
程序12
4.2常用开发工具及其配置与使用14
4.2.1Sun J2ME Wireless Toolkit14
4.2.2Borland JBuilder15
4.2.3Nokia Developer’s suite for J2ME17
4.3高级用户接口设计20
4.3.1Screen20
4.3.2Command与CommandListener21
4.3.3Tiker22
4.3.4Alert22
4.3.5List23
4.3.6TextBox24
4.3.7Form25
4.4低级用户接口设计28
4.4.1Canvas28
4.4.2键盘事件28
4.4.3Graphics类及其基本绘图方法29
4.4.4Graphics高级绘图方法30
4.5架设OTA
下载服务器31
5高级技巧34
5.1适应多国语言34
5.2使用记录系统34
5.2.1记录与记录集34
5.2.2打开和关闭记录集35
5.2.3数据的读写35
5.3工作调度36
5.3.1线程36
5.3.2Timer与TimerTask38
5.4使用随机数38
5.5使用手机的高级特性39
5.5.1使用声音39
5.5.2使用振动41
5.5.3使用背景灯光及闪烁灯光41
5.5.4使用全屏幕显示42
6结语43
参考文献45
致谢46
附录 《GreedySnake》核心代码47
GameManager.java47
Region.java52
Snake.java55
Food.java64
参考文献:Leopold Lee.J2ME手机编程基础[M].清华大学出版社,2003
微型爪哇人.Java手机
程序开发[M].中国铁道出版社,2003
孟祥武,张玉洁.面向对象的Java语言
程序设计[M].北京邮电大学出版社,2001
Sun Microsystems. MIDP 1.0 APIs [J]. Sun Microsystems
Forum Nokia. Creating MIDlets with Nokia Developer’s Suite for J2ME Version 1.2 [J]. Forum Nokia, June 10, 2003
Forum Nokia. Getting Started with Java Technology Version 1.1 [J]. Forum Nokia, Sep 26, 2003
Forum Nokia. Nokia UI API Programmer’s Guide [J]. Forum Nokia, June 24, 2002
Forum Nokia. Guidelines for Game Developers Using Nokia Java MIDP Devices Version 1.0 [J]. Forum Nokia, Nov 07, 2002
Forum Nokia. Efficient MIDP Programming Version 1.0 [J]. Forum Nokia, June 24, 2002
Forum Nokia. Java MIDP Application Developer’s Guide for Nokia Devices Version 1.0 [J]. Forum Nokia, Nov 27, 2002
Forum Nokia. Brief Introduction to MIDP Graphics Version 1.0 [J]. Forum Nokia, Nov 18, 2002
Forum Nokia. Introduction to Mobile Game Development Version 1.1 [J]. Forum Nokia, Jun, 2003
Developer Works, IBM. MIDlet Development with J2ME and MIDP [J]. Developer Works, IBM, 2003
作者点评:之所以选择Java作为移动平台下的游戏开发语言是有如下理由的:
1.平台独立性
对于游戏开发人员而言,只要手机含有Java虚拟机就可以执行Java游戏。
2.安全性
Java语言在原始设计上就将安全性的因素考虑进去,由于Java语言不支持指针的使用,因此Java
程序无法访问某一块内存的数据,也就不会因为
下载了一个错误的
程序而使手机死机。
3.简单
在Java平台所建立的对象,会通过垃圾回收机制来释放这个对象所占用的内存,因此
程序开发人员不需要时时去检查未释放的内存。
4.丰富的类库
Java的类库提供了一些非常实用的类及方法,可以直接调用而不需要重新设计。
5.动态
下载应用
程序手机与其它移动通信设备拥有无线通讯能力,Java游戏可以随时通过无线网络
下载到手机上执行。
J2ME中提供两类用户接口:Screen和Canvas。
Screen的子类提供通用的界面组件,构造这些组件就可实现最为常用的界面显示及交互功能。
Canvas类提供底层的操作方法,由开发者自己绘制界面及捕获键盘事件来实现交互。
在进行一般应用
程序的开发时,Screen基本能够满足界面显示及交互的需求;但在进行游戏开发时,开发者必须熟练掌握Screen及Canvas这两类用户接口的使用方法及特性,以便开发出界面丰富和交互性强的手机游戏。
Java面向对象的特性使得开发游戏变得非常容易。在游戏中,具有同一类特征的物体就可以归为一个类,这个类概括了这一种物体的各方面的属性,包括物体的外观、动作和行为等。
在绘制动画时,最好的方法是使用线程,通过定时长的睡眠来实现动画中的每一个帧,可以很容易的通过改变睡眠时间来动态的改变动画进行的速度。处理器在运算和绘制每一帧时需要花费一定的时间,要保证每一帧的时间是固定的,可以通过
睡眠时间 = 每一帧的固定时间 - (处理结束时间 - 处理开始时间)
来得到睡眠时间。
在制作游戏时,需要实现不同种类的人工智能。包括线路界定、碰撞检测、行为、决策等。如果是动作型的游戏,需要界定物体的运动模式,检测物体间的碰撞,控制物体的追逐、躲避,查找物体移动的路径或最佳路径等;如果是棋牌类的游戏,需要实现决策型的人工智能,让机器“考虑”下一步或下几步的操作。
编写手机上的游戏不同于编写PC上的游戏。由于手机的资源很有限,要用这很有限的资源编写很豪华的游戏很不容易。就现在来说,大多数的中低端手机只支持单个
程序最大64K的存储空间,如果要在游戏中绘制图像,如果单个图像就占了几K甚至几十K,这个游戏能绘制多少图像,这个游戏除了绘制图像还能有空间做其它什么?而且手机的处理器运算能力也有限,不能在游戏中实现运算量很大的操作。所以在编写手机游戏时,必须尽可能的优化算法,用最少的存储空间,最少的运算量,来实现最好的游戏效果。
使用某种手机的高级特性可以使游戏在该类手机中实现更多的功能,如使用全屏幕显示游戏内容,使用声音、振动和背光来渲染游戏情节等。但使用这些特性是以损失该游戏的可移植性为代价的,因为在MIDP的标准定义中并没有实现这些功能。所以在编写游戏时,如果要保持该游戏的通用性,这些高级功能必须慎用。