基于java的手机程序设计

基于java的手机程序设计
基于java的手机程序设计

目录

引言 (2)

1、系统分析 (2)

1.1开发平台和技术分析 (2)

1.1.1Eclipse简介 (2)

1.1.2 Wireless Tool Kit简介 (3)

1.1.3 Java 2 Micro Edition简介 (3)

1.2J A V A语言特点 (3)

1.3需求功能分析 (4)

1.4数据流程分析 (5)

2、系统设计 (5)

2.1程序流程设计 (5)

2.2程序类设计 (7)

2.2.1 MIDlet类 (7)

2.2.2画布Canvas类 (7)

2.2.3界面设计 (7)

2.2.4按键设计 (8)

2.2.5功能设计 (8)

3、系统功能实现 (9)

3.1通过双缓冲技术实现动画 (9)

3.2游戏菜单的绘制 (10)

3.3游戏逻辑及屏幕GAME C ANV AS类 (10)

3.3.1地图的创建以及背景滚动的实现 (11)

3.3.2游戏角色飞行的实现 (11)

3.3.3使用定时器和向量类实现子弹效果 (12)

3.3.4按0键增加子弹速度的实现 (13)

3.3.5使用定时器实现敌机飞行效果 (13)

3.3.5碰撞检测的实现 (14)

3.3.6爆炸图片的实现 (14)

3.4游戏按键的实现 (14)

结论 (17)

参考文献: (19)

附录 (20)

致谢 (22)

引言

目前,中国的手机用户已经突破4亿大关,同时手机用户还在翻倍增长,远

远没有达到饱和的程度,用户数量持续高攀,市场的潜力和巨大的商机已经不言

而喻。4亿的国内手机用户在满足了基本的通信等需求后,还渴望着有更丰富的

无线增值业务。而经过3年多的市场培育,目前手机对手机游戏的认知度和普及

率已经显著提高,手机游戏市场的需求无线膨胀,前景相当乐观。

作为无线娱乐产业的先行者,手机游戏势必会在其领域中脱颖而出,占领绝

大部分的市场份额。同彩铃、彩信等其他业务相比,手机游戏的创造性、娱乐性

互动性和用户黏性都具有绝对的先天优势,这也是其他无线业务所无法比拟的。

手机游戏产业已成为政府部门、海内外运行上、SP(服务提供商)行业关注的

焦点,作为运营商的中国移动将手机游戏作为新业务发展的一个战略性的重点业

务。

3G的推出对手机游戏来说,客户端与服务器的数据传输速度会更快,图像

视频更加清晰流畅,社区交互更加便捷,画面显示更加夺目,这些要素的大幅度

生化使得用户的游戏体验更加丰富。玩家站在任何地方,都可以对是打开手机,

享受手机游戏带来的无线乐趣。

1、系统分析

1.1 开发平台和技术分析

1.1.1Eclipse简介

集成开发环境(Integrated Developing Environment,简称IDE)是一个综合

性的工具软件。目前所有的IDE中,Eclips可以说是有发展前途的产品之一。Eclips Platform是一个开放的可扩展的IDE。Eclips Platform提供建造块和构造并运行

集成软件开发工具的平台,允许工具建造者独立开发与他人工具无缝结成的工

具,无需分辨一个工具功能在那里结束,而另一个工具功能在哪里开始。Eclips 项目产生的工具和来自其他开放源代码的第三方软件组合而成。Eclips项目生产的软件一CPL发布,第三方软件有各自的许可访问协议。

1.1.2 Wireless Tool Kit简介

WTK(Wireless Tool Kit)是Sun公司针对J2ME推出的用于手机和Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他IDE需集成采用的必备元素。

1.1.3 Java 2 Micro Edition简介

J2ME(Java 2 Micro Edition)是Java 2的一个重要组成部分,它与J2SE、J2EE 并称。根据SUN公司的定义:J2ME是一种高度优化的Java运行环境,是主要针对如蜂窝电话、可视电话、数字机顶盒和汽车导航系统等消费类电子设备的。

J2ME是为了那些使用有限的电力、有限的网络连接及有限图形用户界面能力的设备开发的。它最初的目标是具备16位或32位处理器、16MHz时钟频率、512KB或更少内存的设备。

J2ME本质上是一个针对小型设备的Java版本,通过裁减某些在小型设备上不许需要的功能,以达到减小Java虚拟机的体积以及相应运行库的体积,目标是为小型设备提供一个可靠,资源占用少的运行平台。

所有的J2ME组件都围绕一个中心,这些被称为configuration(配置)它们中的每一个配置都是用于消费电子和嵌入设备的某一个特定的类别。

1.2 Java语言特点

(1) 平台无关性

Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口。Java的数据类型与机器无关。

(2) 安全性

Java的编程类似C++,但舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。

(3) 面向对象

Java吸收了C++面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。

(4) 分布式

Java建立在TCP/IP网络平台上,提供了用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。

(5) 健壮性

Java致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。自己操作内存能减少了内存出错的可能性。

1.3 需求功能分析

需求分析过程是整个系统开发最重要的阶段,分析的成功与否,决定着整个系统功能的完善性以及稳定性。在该阶段需求分析人员需要确定整个产品的功能要求,并且将现实事务抽象成对象并建模。

根据现在手机游戏所需要的各项要求以及具体情况,需要满足以下需求:

1. 游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。

2. 游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。

3. 玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。玩家飞机还设置了法宝键,按此键可加快子弹速度。

4. 双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。

7. 游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和Java的优势。

8. Java 是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。

9. 游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。

1.4 数据流程分析

根据系统的功能和数据流程的分析,现将数据流程图显示如下:

2、系统设计 2.1 程序流程设计

MIDlet suite 是MIDP 应用程序的最小单位,JAM 负责将手机内的MIDlet suite 以图形化的方式呈现,让用户能够选取欲执行的MIDlet suite ,一旦选取了某个MIDlet suite ,操作系统就会激活KVM 执行里面的MIDlet 。MIDlet 及相关的支持类组成了MIDP 应用程序的实际内容。而每个MIDlet 都必须继承javax.microedition.midlet.MIDlet 这个抽象类。在MIDP 规范中定义了MIDlet 的

Logo 画面 游戏菜单 开始游戏 关于游戏 游戏帮助 声音开关 退出游戏

初始化数据绘制场景 帮助说明

游戏说明

开关页面

死亡

主循环

生命周期,以及可以存在的三种状态,包括Paused 、Active 以及Destroyed ,每一个MIDlet 在任何时刻只可能处于其中的一个状态。这三种状态的转换关系如图3-1所示:

MIDlet 有三个状态,分别是pause 、active 和destroyed 。在启动一个MIDlet 的时候,应用管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。值得一提的是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS 通知MIDlet 进入destroyed 状态。在destroyed 状态的MIDlet 必须释放了所有的资源,并且保存了数据。如果unconditional 为false 的时候,MIDlet 可以在接到通知后抛出MIDletStateChangeException 而保持在当前状态,如果设置为true 的话,则必须立即进入destroyed 状态。

本游戏所有界面都是在底层屏幕类Canvas 上绘画,首先创建一个离屏画布,将游戏所用地图,玩家飞机以及子弹先绘画在离屏画布上。

程序主要有两个类。gameStart 类继承自MIDlet ,gameCanvas 类继承自GameCanvas 。游戏经过两个LOGO 画面进入到菜单选项,可进行开始游戏,游戏帮助,关于游戏,声音开关,退出游戏等选项。游戏开始时,主线程一直运行,另外还设置了4个定时器,分别用来控制子弹的生产,子弹的移动,敌机的生产和敌机的移动。

程序使用gameStart 类调用sartApp()方法开始游戏,通过Display 对象将屏

消减状态 (Destroyed)

停止状态 (Paused)

运行状态 (Active)

StartApp()

DestroyApp()

呼叫MIDlet 的构造

函数

PauseApp()

图2-1 MIDlet 的流程

幕显示转给gameCanvas类对象。

2.2 程序类设计

2.2.1 MIDlet类

用于启动游戏的开始,在MIDlet中通过Display进行用户界面管理,负责与用用程序管理进行交互。

2.2.2 画布Canvas类

为了能有程序开发人员控制接口的外观和行为,需要使用大量的初级用户接口类,尤其在游戏程序中,几乎完全依赖的就是Canvas抽象类进行绘图。从程序开发的观点看,Canvas类可与高级Screen类交互,程序可在需要时在Canvas中掺入高级类的组件。Canvas提供了键盘事件、指点杆事件(如果设备支持),并定义了允许将键盘按键映射为游戏控制键的函数。键盘事件由键代码指定,但这样控制游戏会导致缺乏通用性,并不是每个设备的键盘布局都适合游戏的操作。应当将键代码转换为游戏键的代码,以便硬件开发商能定义他们自己的游戏键布局。

2.2.3 界面设计

游戏开始界面如图2-2所示。

游戏进入界面后就会看到“开始游戏”,“游戏帮

助”,“关于游戏”,“音乐开关”,“退出游戏”选项。

单击开始游戏进入游戏。在游戏帮助中会告诉玩家如

何操作游戏的信息。关于游戏则告诉玩家游戏的开发

信息。菜单界面如图2-3所示:

图2-2 游戏开始界面

图2-3 游戏菜单界面

2.2.4 按键设计

主流市场上的手机键盘设置一般都是4*3的格局,根据人手指案件的习惯游戏中一般用到的都是2,4,5,6,8键。*、#、左侧功能键和右侧功能键做其他键位功能

数字4键向左移动

数字2键向上移动

数字5键使用武器进行射击

数字6键向右移动

数字8键向下移动

数字0键发射飞弹

左侧功能键暂停

右侧功能键返回主菜单

表2-4 战斗界面中的按键说明

2.2.5 功能设计

在设计手机游戏的菜单是,要充分考虑设备的原有操作习惯,比如NOKIA 的手机用户会使用左软键作为确定,右软键作为返回菜单。而MOTO的手机用户右软键作为确定,左软键作为返回菜单。中国移动的百宝箱业务的开发规范中对游戏的按键进行了要求。

在底层屏幕类中,核心的方法是paint(),keyPressed()和run()这三个方法,分别用来控制屏幕的绘制、按键的处理和游戏逻辑的处理。这3个方法的工作是在一个状态变量gameState 协调下完成的。gameState存储了当前整个系统的状态,当游戏加载时,按键控制快速跳过画面,run()方法控制往下,当显示菜单时keyPressed()方法所接受的按键用来改变菜单的状态变量menuState;当进行游戏时,用户按键控制的就是主角的移动而不是修改菜单选项。run()方法测试对游戏的所有逻辑数据进行加工和计算,计算完成之后,在paint()方法中根据计算的结果再进行绘制,下面代码是paint()方法的核心结构:

public void paint(Graphics g) {

offG.setClip(0, 0, SCREENWIDTH, SCREENHEIGHT);

switch (gameState) {

case PAUSE: //暂停状态

case MENU: //菜单状态

switch (this.menuState) {

case 0:

//载入Logo图片

break;

case 1:

//载入第二幅Logo图片

break;

case 2:

//绘制菜单

break;

…………………

break;

case LOAD: //游戏加载状态

break;

case GAMEING://游戏进行中状态

break;

case GAMEOVER://游戏结束状态

break;

}

//将脱屏缓冲区的内容绘制到屏幕

g.drawImage(im, 0, 0, 0);

}

3、系统功能实现

3.1通过双缓冲技术实现动画

在底层屏幕的paint()方法中要执行大量的图形绘制,而在绘制的过程中手机屏幕又要显示,很可能当前帧没有绘制完成下一帧的绘制任务就已经开始,这样就会导致屏幕的闪烁。避免闪烁的方法是使用图像的双缓冲技术,定义一个完全脱离屏幕的缓冲画布,在缓冲画布绘制所有内容,当绘制完成时再将缓冲画布中的所有像素信息整个贴到当前手机屏幕上,在J2ME中可以使用Image类创建一个可修改的缓冲画面,代码如下:

Image im = Image.createImage(SCREENWIDTH, SCREENHEIGHT); //创建脱屏画布

Graphics offG = im.getGraphics(); // 脱屏画笔

将所有画面都绘制在im上,然后将im画布在贴到当前画面上。

3.2 游戏菜单的绘制

菜单背景的静态绘制:直接在离屏画布上绘制静态图片,重新绘制离屏画布的大小,如果背景图片没有加载到,则将背景用黑色代替。

菜单选项的绘制:本游戏的菜单的所有选项的界面都是通过图片加载所实现的,如果每个选项都把图片作为单独的一个文件,则会大大增加图片的数量,同时也增加了整个程序的大小。我们将所有选项的画面保存在同一个图片文件中就可以节省资源。我们就只需要加载一张图片就可以了,在这里我们需要用到setClip()方法绘制图片的一部分。setClip()方法是用来绘制指定坐标后面区域的图片。通过setClip()方法可以将图2-5做成游戏中的单个选项的画面。

图2-5

在方法外设置一个nowFramemenu变量记录菜单中的各个选项,用按上下键来确定所需选项。具体剪裁菜单选项的代码如下:

public void drawmenu(Graphics offG) {

//设定剪裁区x y w h

//剪裁区的范围在屏幕重绘的时候受到影响其它区域不受影响

offG.setClip(0, 178, 130, 30);

offG.drawImage(menu, 0, 178, 0);

offG.setClip(0, 182, 94, 20);

offG.drawImage(menu, 20, 182 - 30 - 20 * nowFramemenu, 0);

}

3.3 游戏逻辑及屏幕gameCanvas类

gameCanvas类是游戏的主要核心,gameCanvas中的方法决定着地图的滚动,子弹的产生,子弹的移动,敌人的产生,控制着敌人的移动,判断敌人及玩家是否被击中等。它控制着整个游戏的线程。

3.3.1 地图的创建以及背景滚动的实现

本游戏通过加载一张与屏幕大小一致的PNG图片作为地图,然而一张图片加载上去是静态的,如何实现背景的滚动呢?我们先将地图初始化,将两张地图凑在一起画在离屏画布上,第一张地图画在离屏画布的正上方,第二张地图贴着离屏画布的左上角,每重绘一次地图的纵坐标递增1像素,则整个图片就会向下移动1像素,当第2张图片纵坐标超过屏幕的限制时,返回到初始化状态。通过在该图上再次绘制填补空白。实现代码如下:

public void drawBack() {

offG.setClip(0, 0, SCREENWIDTH, SCREENHEIGHT);

switch (this.level_Mode) {

case 1:

offG.drawImage(mapbk, 0, mappy, 0);

offG.drawImage(mapbk, 0, mappy - 208, 0);

}

mappy += 1;

if (mappy >= 208) {

mappy = 0;

}

}

其中,level_Mode是关卡的值,通过不同关卡值可以绘制不同关卡图片。

3.3.2 游戏角色飞行的实现

在实现飞行的过程中,首先对飞机的图片、坐标、方向定义进行定义和初始化,图片和实现代码如下:

px=176/2-15;

py=208-30;

direct=0;

因为在飞行中,飞机在各个方向飞行时的样子是不同的,比如说向右飞行的时候左翼则会侧飞,为了增加游戏的逼真效果,本游戏使用了setClip()方法对

飞机的动画进行切割使用,当按下方向键时即时的设置按下该方向键所需要的帧实现代码如下:

public void drawPlane() {//画飞机

offG.setClip(px,py,30,30);

offG.drawImage(imPlane,px-dirFrame[direct]*30,py,0);画出不同方向时飞

机的样式

offG.setClip(0,0,176,208);

}

通过在keyPressed()方法中处理按键来改变飞机的飞行方向,而run()方法控制了定时的屏幕绘制。这样,每次都会根据按键处理方法中修改的结果进行新的屏幕绘制,我们就会看到不同方向飞机飞行的效果。

3.3.3 使用定时器和向量类实现子弹效果

在飞机发射子弹过程中,会有多于一个1颗的子弹在空中飞行,子弹的数量不能确定,要存储不确定的一组数据可以采用向量Vector。因为这个类提供了管理任意数量对象的方法,可以方便的将对象添加到向量中进行管理,也可以随时移出,当对象从向量中移出时,系统会自动对内容进行清空。以下是子弹向量的定义:

allBullet=new Vectior();

子弹在用户按下按键时能够连续发射是通过一个定时器实现的。当按下开火键的时候,定时器检测到并开始按没0.3秒的速度产生子弹,将子弹的数据(子弹当前的坐标,以及图片帧)添加到向量中,子弹产生后,不会一直不动,它的坐标因该不停的变化,程序中创建了第二个定时器不断对子弹的坐标进行调整,在子弹还在屏幕中的时候,每0.2秒向上移动8个像素,并且对屏幕进行重绘。如果在子弹移动进行中,用户按了0键,子弹速度将突然爆发,以0.2秒移动40个像素的速度击毙敌人。在子弹移出屏幕以后,从向量中将该子弹对象移出。由于Java中Vector是按照对象的方式来处理的,可以将其添加到向量中进行管理。

在方法drawBullet()中获取子弹的向量对象,从向量中获取子弹的坐标,并在该坐标上绘制子弹的图片,因为子弹的图片为3个帧,因此可以看到在子弹飞行的过程中,子弹的样子是不断变化的。

通过按键控制了子弹发射开关变量isFire的值为true,在抬起按键以后又将isFire的值设置false。

3.3.4 按0键增加子弹速度的实现

如果在子弹移动进行中,用户按了0键,子弹速度将突然爆发,以0.2秒移动40个像素的速度击毙敌人。在方法外设置一个参数quick来确定用户是否按了0键。将下面代码嵌入到第二个定时器内,用来捕获quick参数的取值。

if(quick)

tmp[1]+=40;//如果按了加速键,则向上移动40像素

else

tmp[1]-=8;

3.3.5 使用定时器实现敌机飞行效果

为了控制方便,敌机的出现不用主线程控制,而用定时器实现。因为敌人出现的位置不固定,为了使得敌机出现的随机性,设置了一个随机数random%168作为敌机出现的横坐标,从上面飞下来。通过定时器没0.2秒随机产生一架敌机,并将之放入向量数组中,记录敌机的初始坐标和敌机类型,并通过另一个计时器,每秒将敌机的坐标向前推进8像素,并且将paint()方法重绘。

使用方法drawPlaneAi()从向量中获取敌机的信息,根据敌机的坐标在相应位置绘制相应的敌机图片。

敌机的图片如图2-6下:

图2-6 敌机图片

敌机随机出现的表现形式如图2-7所示:

图2-7 敌机随机出现表示和子弹射击

3.3.5 碰撞检测的实现

游戏进行中,需要进行玩家飞机、子弹与敌机进行碰撞检测。当玩家角色与敌机碰撞的时候会死亡,产生爆炸,然后返回主菜单页面。因此设置了一个变量NPCdead记录玩家角色的生存状态,当NPCdead为True时则不绘制玩家飞机,并在主线程中将gameState改为主菜单的状态,同时再将NPCdead设置为false,以并下次游戏开始初始化玩家角色。当敌机碰到玩家子弹的时候,将敌机从Vector向量中移出,并在当初位置绘制爆炸图片。检测算法主要判断敌机与子弹的位置是否相等,由于当初设置子弹和敌机的时候他们的位置只是一个点,因此在碰撞检测的时候将这个点的范围变大,这样可以有效实现碰撞的效果。碰撞检测是由方法isChecked(int x1,int y1)实现的,判断基于位置(x1,y1)这个点的范围有没有子弹出现,如果有则返回ture,否则返回false;同时在函数内将这个位置记录到一个全局变量数组中,用来设置爆炸图片绘制的位置。

如图2-8所示,显示了爆炸图片的制作效果:

图2-8 击毙敌机和被敌机碰撞产生的爆炸

3.3.6 爆炸图片的实现

为了体现爆炸的真实性,那么爆炸不可能只是单一的一个静态画面。为了实现爆炸的动画效果则需要4个帧,每次绘制的时候将帧的值加1,换成下一个爆炸图片,其实现也是用setClip()方法实现。当玩家被敌机碰撞后产生爆炸后返回到主菜单。

3.4游戏按键的实现

在底层屏幕类中是用keyPressed()方法进行按键控制的。因为游戏分为很多

状态,所以不同状态中按键的效果又有不同。当在进入LOGO画面的时候,按键是没有效果的。当gameState=MENU的时候,按上下键可以进行选项处理。由于选项多个,因此需设置一个menuState来标识不同的选项,以确定按下确定键的时候处理哪中选择。当gameState=GAMEING时,玩家可通过上下左右来进行游戏角色的上下左右移动。并更改玩家角色的坐标,来实现飞机的飞行。在游戏进行中,按左侧软键可以进行暂停,按右侧软键可以退出游戏,返回主菜单。具体代码如下:

public void keyPressed(int n) {

if(gameState==GAMEING)//当游戏状态处于GAMEING时,进行上下左右的运动

{ int k=this.getGameAction(n);

switch(k)

{ case Canvas.UP:

direct=1;

py-=8;

break;

case Canvas.DOWN:

…………..

case Canvas.FIRE:

direct=1;

this.isFire=true;

}

if(n==48)//设置加速键

quick=true;

if(n==-7)//在游戏开始时按右软键则返回主菜单

gameState=MENU;

}

else if (gameState == MENU || gameState == PAUSE) {

//处理音乐

if (menuState == 5 && (n == Canvas.KEY_NUM5 || n == -5)) {

this.soundOn = !this.soundOn;

this.repaint();//重绘屏幕

return;

}

//处理关于

………………………

if (menuState >= 3) {//在菜单状态时,实现按上下左右键选择游戏选项

if (n == Canvas.KEY_NUM2 || n == -1 || n == 1

&& (menuState != 4 && menuState != 6)) {

nowFramemenu--;//改变选项帧

if (nowFramemenu <= 0) {

nowFramemenu = 0;

}

}

if (n == Canvas.KEY_NUM8 || n == -2 || n == 2

………………………

}

}

if ((n == -7 || n == 7) && (this.menuState != 3)) {

this.menuState = 3;

this.repaint();

return;

}

if (nowFramemenu == 1) {//将选项帧与菜单状态对应

this.menuState = 4;

}

if (nowFramemenu == 2) {

this.menuState = 6;

}

……………………………………

this.repaint();

}

return;

}

通过keyReleased()方法处理按键抬起是的动作。

public void keyReleased(int n) {

direct=0;

if(this.getGameAction(n)==Canvas.FIRE)

{this.isFire=false;

}

}

结论

几乎每一个计算机程序都会有这样那样的不足,尤其是未经过精心维护的非商业软件。即使是作为操作系统的各种版本的Windows也时常会发生许多类型的错误和漏洞。本游戏程序对于初涉此领域的毕业设计课题来说,尤其在开始初期,感觉逻辑复杂,难以控制,经过同学试用后的建议,本游戏应该完善的功能如下:

1. 敌机最好能发子弹,可增加游戏的可玩性;

2. 最好有接宝物的设置,增强可玩性;

3.应设置关卡BOSS,如当敌机消灭一定数量的时候就会出现一个BOSS。

7. 没有添加成绩记录,即英雄榜;

6. 最大的遗憾,敌人不够智能化。

以上不足需要我继续学习,在原有的基础上不断努力,掌握足够的知识,以便以后在工作岗位中能更好的发挥自己的才能!希望不远的将来,我能够有能力

对这个游戏进行重写,加以完善。

这款游戏作为我的毕业设计,是本人目前做过的最有意义的程序,学习期间做过很多课程设计,大多规模很小。在数据库、各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,有无比自豪的心情。大学期间做过图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。大家作品的最终结果都离不开同一个模式。相比一些数据库软件,游戏的设计有很多人情色彩和艺术思想的发挥,正式商业的软件的人性化界面和各个游戏间不同的结构每每会让人有去开发的冲动。

参考文献:

[1]Joshua Bloce著,潘爱民译:《Effective Java中文版》,机械工业出版社.,2004年7月第4版。

[2]Bruce Eckel,侯捷译,《Java编程思想》,机械工业出版社出版社,2005年3月第1版。

[3]王森著,《Java手机/PDA程序设计入门》,电子工业出版社,2005年2月第3版。

[4]James Keogh著,潘颖王磊译,《J2ME开发大全》,清华大学出版社,2004年2月第1版。

[5]Ian Sommerville著,程成等译,《软件工程》,机械工业出版社,2003年1月第1版。

[6]Frand M.Carrano,Janet J.Prichard著,韩志宏译,《数据抽象和问题求解——JA V A语言描述》,清华大学出版社,2005年4月。

[7]李振鹏,龚剑编,《J2ME手机游戏开发技术详解》,清华大学出版社,2006年3月第1版。

[8]雍俊海编,《Java程序设计习题集》,清华大学出版社,2006年4月第1版。

[9] [美]《Bruce Eckel. Thinking In Java》英文第4版,北京机械工业出版社,2007年3月第1版。

[10]丁振凡主编,《Java语言实用教程》,北京北京邮电大学出版社,2005年6月第1版。

[11]王路群编,《Java高级程序设计》,北京中国水利水电出版社,2006年7月第1版。

[12]柳西玲,许斌编著,《Java语言应用开发基础》,北京清华大学出版社,2006年1月第1版。

[13]吴其庆编著,《Java程序设计实例教程》,北京冶金工业出版社,2006年2月第1版。

[14]赵毅主编,《跨平台程序设计语言——Java》,西安电子科技大学出版社,2006年8月第1版。

[15]郑莉,王行言,《马素霞编著.Java语言程序设计》,清华大学出版社,2006年3月第1版。

[16]Jonathan Knudsen著,《What's New in the J2ME Wireless Toolkit》,2004年4月第1版。

附录

系统使用说明

(一)系统开发环境

操作系统:Windows XP

开发环境:Eclipse3.2

编译打包工具:J2ME WTK2.5,JDK1.6.0_13

(二)系统开发测试打包简介

1.首先解压Eclipse3.2,并将中文包NLpack1-eclipse解压出来的features 和plugins文件夹覆盖到Eclipse安装路径下,然后运行eclipse.exe,先设置工作空间,然后进入工作台,在“帮助”下点“软件更新”以及“查找并安装”,然后,搜索要安装的新功能部件,点“下一步”,新建已归档的站点,打开eclipseme.feature_1.0.0_site插件,进行安装。

2.点击“窗口”下的首选项,打开左边的J2ME,并点击Platform Components,右击右边窗口的Wireless Toolkits,点Add Wiesless Tooklkits,找到WTK22的安装目录,点完成。再打开左边窗口的Java,点击构建路径,将“源和输出文件夹”设置成“文件”,然后确定。

3.将系统flaygame文件夹复制到工作区路径下,运行Eclipse,打开文件下的新建,新建一个项目,打开J2ME,并点击J2ME Midlet suite然后下一步,设置项目名为flygame,选择J2ME Wireless Toolkit 2.2 MIDP 2.0 Platform,然后确定。

4.在左边窗口下,依次点击flygame\src\缺省包,右击Midletfly,在运行方式下,选择Emulated J2ME Midlet,会看到运行的效果。

5.使用WTK的新建项目功能建立一个新项目,要求与Eclipse工作区下的

基于java的手机游戏开发与设计

摘要在信息技术飞速发展的今天,随着的手机日益普及,手机游戏也成了人们生活中不可缺少的一部分。Java在移动设备上的功能实现也越来越具影响力,为丰富人们的生活,提供服务等方面提供了诸多方便。本文主要介绍一款基于Java语言开发的手机游戏——贪吃蛇,该设计主要是应用J2ME 技术,结合JDK 1.6.0,使用IDE Eclipse 3.4与EclipseMe1.7.9作为开发工具,以Sun J2ME Wireless Tool Kit 2.5.2软件作为模拟测试工具的综合性的开发设计。本设计主要是对手机游戏的开发过程的各个环节做了详细的介绍,其中包括:手机游戏开发平台的搭建与测试、具体设计及开发步骤、软件测试运行与打包生成等,实现了经典游戏——贪吃蛇的手机嵌入,以便满足一些手机用户的娱乐需求。 关键字J2ME WTK Eclipse ABSTRACT In the day of rapid development of information technology, with the growing popularity of mobile phone, mobile games also become the indispensable part in daily life. Java in the function realization of the mobile device is also more and more influential for rich people's life and providing services offered many convenient. This paper mainly introduces a mobile game snake of Java language development. This design is a comprehensive development design,which mainly applied 1.6.0 JDK J2ME technology, combined with the Eclipse, use IDE EclipseMe1.7.9 as 3.4 development Tool, Tool Kit to 2.5.2 from J2ME Wireless

基于java的打砖块游戏学位论文

北方民族大学学士学位论文论文题目基于JA V A的打砖块游戏开发 系(部)名称: 计算机科学与工程学院 学生姓名: 专业: 软件工程 学号: 指导教师姓名: 论文提交时间: 2014-5-7 论文答辩时间: 2014-5-17 学位授予时间: 北方民族大学教务处制

基于JAVA的打砖块游戏开发 摘要 打砖块是一款堪称经典的小游戏,在掌上游戏机上和许多手机上都能发现这个小游戏。游戏基本内容是玩家通过控制一个能够左右移动的挡板,反弹正在运动中弹球,使之改变移动的方向,用小球消除游戏窗口里面的的砖块,然后到达下一关,在障碍物被消除的过程中,可能会产生一些能改变挡板或者小球状态的物品,例如:挡板变长、变短,小球威力加强等等。 本系统是一个基于Java语言平台的打砖块游戏。主要任务是设计打砖块游戏的算法,并使用JA V A语言编写程序,最终完成游戏编程,并使之能够正确运行。主要是小球的碰撞检测和运动轨迹的算法,碰撞部分可以将小球看成一个矩形,当矩形的边界坐标与砖块、挡板、墙壁等一样时,可以判断为进行了碰撞,而运动轨迹只要在碰撞后将X轴或Y轴取反就可以了。 本文第一章阐述了选题目的及Java游戏目前的发展现状。第二章介绍了Java 语音的特点和基于Java游戏开发的相关的技术。第三章详细介绍了打砖块游戏,包括游戏的规则和期待的效果等。第四章进行打砖块游戏的具体设计与实现,包括界面的设计,类的设计,算法的设计等等。第五章对游戏进行运行和测试,以期检测游戏中的各种问题。期望通过本游戏实例掌握小型Java游戏开发和Java 编程的基础的知识和技巧,使自己具备开发Java游戏基本能力。 关键字:java,游戏设计,测试,打砖块,算法

基于JAVA的手机RPG游戏图形引擎的实现

第34卷第4期2008年12月延边大学学报(自然科学版) Journal of Yanbian University (Natural Science )Vol.34No.4Dec.2008 收稿日期:2008203214 作者简介:臧晓强(1977— ),男,讲师,研究方向为智能信息处理.文章编号:100424353(2008)0420287203 基于JAVA 的手机RPG 游戏 图形引擎的实现 臧晓强, 崔荣一, 金小峰, 蔡京哲, 张振国 (延边大学工学院计算机科学与技术系,吉林延吉133002) 摘要:手机游戏引擎中的图形引擎非常重要,它的好坏关系到手机游戏界面流畅情况以及对手机的硬件要求程度.本文基于J 2M E 的MIDP2.0,讨论了手机RP G 游戏引擎中图形引擎的设计与实现,包括地图数据文件设计到读取、分析、加载和渲染. 关键词:游戏引擎;手机游戏;RP G 游戏;图形引擎中图分类号:TP391 文献标识码:A Implementation on Java RPG Mobile G ame G raphic E ngine ZAN G Xiao 2qiang ,CU I Rong 2yi ,J IN Xiao 2feng ,CA I Jing 2zhe ,ZHAN G Zhen 2guo (De partment of Com puter Science and Technology ,College of Engineering , Yanbian Universit y ,Yanj i 133002,China ) Abstract :The graphic engine is very important in mobile game engine which effects the game ’s scene and the mobile ’s hardware.A MIDP 2.0based on RP G engine is presented in this paper ,including how to design ,read ,analysis ,load and render the map 2data 2file. K ey w ords :game engine ;mobile game ;RP G game ;graphic engine 0 引言 随着移动技术的快速发展和一些应用开发平台如J 2M E 、BREW 的成熟,手机游戏变得越来越成熟[1].游戏引擎是控制某一类游戏运行的程序,在后台指挥游戏中的所有元素,包括图像、声音、动画、事件等协调有序地工作.游戏引擎能给开发带来方便,并对今后的修改升级、游戏的开发提供基础[2].目前,市面上的手机游戏绝大部分由游戏开发商提供,普通大众由于缺乏专业的程序开发技能而难以参与手机游戏的开发,只能被动地接受开发商、运营商所提供的应用[325],因此建立一个能够让一般的游戏设计人员使用、便于操作的游戏引擎变得更为迫切.限于篇幅,本文重点探讨地图的读取及渲染的实现. 1 MIDP 中重要的API 简介 M IDP (Mo bile Information Device Profile ,M IDP )提供了对手机设备的屏幕和硬件键的细 粒度控制.其中主要的API 类如下:1)Screen 类是高级小构件如Alert 、List 、Form 的基础,MIDP 2.0 允许同一个Form 上混合文本和图像;2)Canvas 类是低级M IDP U I 的基础,提供对整个屏幕的像素级绘画的访问,以及游戏动作、按键事件的处理方法;3)Game Canvas 类继承于Canvas 类,可以直接从get 2Grap hics ()方法中得到Grap hics 对象并且在该对象上绘图,并可以调用flush Grap hics ()方法更新屏幕的一部分.M IDP 2.0的game 包为游戏应用程序定义了一套完整的A PI.MIDP 2.0除了Game Canvas 类之外,还提供了支持平铺或

(完整word版)基于Java的猜拳小游戏设计

目录 绪论............................................... 错误!未定义书签。 一、背景与意义..................................... 错误!未定义书签。 二、设计原理与方案................................. 错误!未定义书签。 一)方案....................................... 错误!未定义书签。 二)设计思路................................... 错误!未定义书签。 三)系统分析................................... 错误!未定义书签。 四)程序概要设计............................... 错误!未定义书签。 五)工作流程图................................ 错误!未定义书签。 六)程序框图.................................. 错误!未定义书签。 七)程序中所用类说明.......................... 错误!未定义书签。 八)程序运行效果及存在的问题................... 错误!未定义书签。 三、项目实现....................................... 错误!未定义书签。 一)程序用到的类库简介......................... 错误!未定义书签。 二)游戏主程序设计............................. 错误!未定义书签。 三)主界面PigPanel类......................... 错误!未定义书签。 四)具体实现.................................. 错误!未定义书签。 四、运行结果....................................... 错误!未定义书签。 一)结果截图................................... 错误!未定义书签。 二)系统在调度中经常出现的问题................. 错误!未定义书签。 五、心得........................................... 错误!未定义书签。 六、总结语......................................... 错误!未定义书签。 七、参考文献 (19)

基于Java的手机程序设计

目录 引言 (2) 一、系统分析 (2) (1)开发平台和技术分析...................................... (2) (2) JAVA语言特点 (3) (3)需求功能分析 (4) (4)数据流程分析 (5) 二、系统设计 (5) (1)程序流程设计 (5) (2)程序类设计 (7) 三、系统功能实现 (9) (1)通过双缓冲技术实现动画 (9) (2)游戏菜单的绘制 (9) (3)游戏逻辑及屏幕GAMECANVAS类 (10) (4)游戏按键的实现 (14) 结论 (17) 参考文献: (19) 附录 (20) 致谢 (22)

引言 目前,中国的手机用户已经突破4亿大关,同时手机用户还在翻倍增长,远远没有达到饱和的程度,用户数量持续高攀,市场的潜力和巨大的商机已经不言而喻。4亿的国内手机用户在满足了基本的通信等需求后,还渴望着有更丰富的无线增值业务。而经过3年多的市场培育,目前手机对手机游戏的认知度和普及率已经显著提高,手机游戏市场的需求无线膨胀,前景相当乐观。 作为无线娱乐产业的先行者,手机游戏势必会在其领域中脱颖而出,占领绝大部分的市场份额。同彩铃、彩信等其他业务相比,手机游戏的创造性、娱乐性互动性和用户黏性都具有绝对的先天优势,这也是其他无线业务所无法比拟的。 手机游戏产业已成为政府部门、海内外运行上、SP(服务提供商)行业关注的焦点,作为运营商的中国移动将手机游戏作为新业务发展的一个战略性的重点业务。 3G的推出对手机游戏来说,客户端与服务器的数据传输速度会更快,图像视频更加清晰流畅,社区交互更加便捷,画面显示更加夺目,这些要素的大幅度生化使得用户的游戏体验更加丰富。玩家站在任何地方,都可以对是打开手机,享受手机游戏带来的无线乐趣。 1、系统分析 1.1 开发平台和技术分析 1.1.1Eclipse简介 集成开发环境(Integrated Developing Environment,简称IDE)是一个综合性的工具软件。目前所有的IDE中,Eclips可以说是有发展前途的产品之一。Eclips Platform是一个开放的可扩展的IDE。Eclips Platform提供建造块和构造并运行集成软件开发工具的平台,允许工具建造者独立开发与他人工具无缝结成的工具,无需分辨一个工具功能在那里结束,而另一个工具功能在哪里开始。Eclips 项目产生的工具和来自其他开放源代码的第三方软件组合而成。Eclips项目生产的软件一CPL发布,第三方软件有各自的许可访问协议。 1.1.2 Wireless Tool Kit简介 WTK(Wireless Tool Kit)是Sun公司针对J2ME推出的用于手机和Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通

基于J2ME的手机游戏设计与实现Java.

基于J2ME的手机游戏设计与实现Java 毕业论文 目录前言11绪论21.1 Java与J2ME概述21.1.1 Java历 史21.1.2 关于J2ME 31.2 手机游戏的前景41.2.1手机游戏载体的优 势41.2.2 手机游戏与传统游戏的差别52 开发环境简介72.1开发工具的选择72.2 Wireless Tool Kit 72.3 Java开发环境的建立83 需求分析和概要设计113.1设计的限制条件113.1.1 内存113.1.2 显示大小和分辨 率113.1.3 手机界面123.2 需求分析123.2.1用户调查和目标用 户123.2.2 游戏种类133.2.3长期的计划133.2.5游戏性133.2.5创 意133.3 概要设计143.3.1 游戏简介143.3.2 模块划分及功能143.3.3 关于Canvas 153.3.4 Graphics类173.3.5绘制背景技术184 详细设 计194.1主菜单的设计194.2 控制逻辑实现204.2.1 定义相关变 量204.2.2 游戏的初始化214.2.3绘图方法214.2.4消息处理机 制274.2.5游戏的存取334.3 图片处理344.3.1 Image类354.3.2 Draw 类374.3.3 Map类405 结束语42参考文献43致谢44 基于J2ME的手机游戏设计与实现摘要: 随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。J2ME(Java 2 Micro Edition)就是近年来随着各种移动通信设备的飞速发展而诞生的1项新的开发技术。它 定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的 解决方案,并因其“Write Once, Run Anywhere”的Java特性而提高开发的效率。本文中采用了J2ME技术,设计并开发了1款有1定商业价值的手机游戏--华容道。论文介绍了J2ME的相关背景和技术,并从软件工程的角 度出发,详细阐述了需求分析,概要设计,详细设计等开发过程。关键词: Java; J2ME; MIDP2.0; 手机游戏。 Design and Implementation of Handset GamesBased on J2ME Abstract: When cell phone is getting ever more popular nowadays, with the implementation of Java technology on mobile equipment, increment of capital on communication service exhibits its force on people’s everyd ay life, providing them ever fast information just in hand. J2ME is a kind of fast developing technology implemented on various devices especially mobile communication equipments. It focuses on application for consumptive electronic products, providing revolutionary solution to the intelligentization and diversification of the equipment , and improves the efficiency of the development process thanks to it includes the nature of” Write Once, Run Anywhere” of Java.HuaRong Road, one handset game with certain commercial value, has been

基于java的手机程序设计

目录 引言 (2) 1、系统分析 (2) 1.1开发平台和技术分析 (2) 1.1.1Eclipse简介 (2) 1.1.2 Wireless Tool Kit简介 (3) 1.1.3 Java 2 Micro Edition简介 (3) 1.2J A V A语言特点 (3) 1.3需求功能分析 (4) 1.4数据流程分析 (5) 2、系统设计 (5) 2.1程序流程设计 (5) 2.2程序类设计 (7) 2.2.1 MIDlet类 (7) 2.2.2画布Canvas类 (7) 2.2.3界面设计 (7) 2.2.4按键设计 (8) 2.2.5功能设计 (8) 3、系统功能实现 (9) 3.1通过双缓冲技术实现动画 (9) 3.2游戏菜单的绘制 (10) 3.3游戏逻辑及屏幕GAME C ANV AS类 (10) 3.3.1地图的创建以及背景滚动的实现 (11) 3.3.2游戏角色飞行的实现 (11) 3.3.3使用定时器和向量类实现子弹效果 (12) 3.3.4按0键增加子弹速度的实现 (13) 3.3.5使用定时器实现敌机飞行效果 (13) 3.3.5碰撞检测的实现 (14) 3.3.6爆炸图片的实现 (14) 3.4游戏按键的实现 (14) 结论 (17) 参考文献: (19) 附录 (20)

致谢 (22) 引言 目前,中国的手机用户已经突破4亿大关,同时手机用户还在翻倍增长,远 远没有达到饱和的程度,用户数量持续高攀,市场的潜力和巨大的商机已经不言 而喻。4亿的国内手机用户在满足了基本的通信等需求后,还渴望着有更丰富的 无线增值业务。而经过3年多的市场培育,目前手机对手机游戏的认知度和普及 率已经显著提高,手机游戏市场的需求无线膨胀,前景相当乐观。 作为无线娱乐产业的先行者,手机游戏势必会在其领域中脱颖而出,占领绝 大部分的市场份额。同彩铃、彩信等其他业务相比,手机游戏的创造性、娱乐性 互动性和用户黏性都具有绝对的先天优势,这也是其他无线业务所无法比拟的。 手机游戏产业已成为政府部门、海内外运行上、SP(服务提供商)行业关注的 焦点,作为运营商的中国移动将手机游戏作为新业务发展的一个战略性的重点业 务。 3G的推出对手机游戏来说,客户端与服务器的数据传输速度会更快,图像 视频更加清晰流畅,社区交互更加便捷,画面显示更加夺目,这些要素的大幅度 生化使得用户的游戏体验更加丰富。玩家站在任何地方,都可以对是打开手机, 享受手机游戏带来的无线乐趣。 1、系统分析 1.1 开发平台和技术分析 1.1.1Eclipse简介 集成开发环境(Integrated Developing Environment,简称IDE)是一个综合 性的工具软件。目前所有的IDE中,Eclips可以说是有发展前途的产品之一。Eclips Platform是一个开放的可扩展的IDE。Eclips Platform提供建造块和构造并运行 集成软件开发工具的平台,允许工具建造者独立开发与他人工具无缝结成的工

Java编写手机游戏程序的方法和实例--附件:手机游戏源代码

《Java编写手机游戏程序的方法和实例》一文的游戏源代码: 威海职业学院信息工程系赵永华 第一个子程序:HardDriveMIDlet.java /* HardDriveMIDlet.java : Container MIDlet */ import java.io.IOException; import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.*; public class HardDriveMIDlet extends MIDlet implements CommandListener { private Display dgDisplay; private HardDriveCanvas hdCanvas; private GameOverCanvas goCanvas; static final Command ExitCommand = new Command("Exit", Command.EXIT, 0); public HardDriveMIDlet( ) { // Create the main Display dgDisplay = Display.getDisplay(this); } protected void startApp() //throws MIDletStateChangeException { try{ hdCanvas = new HardDriveCanvas(this, "/car.png", "/obstacle.png"); hdCanvas.start(); hdCanvas.addCommand(ExitCommand); hdCanvas.setCommandListener(this); } catch (IOException ioe) { System.err.println("Problem loading image "+ioe); } //Set newly created canvas as current canvas dgDisplay.setCurrent(hdCanvas); } public void pauseApp() {

java技术对手机游戏的设计与实现

毕业论文 题目JAVA技术对手机游戏的设计与实现 学生姓名 学号 院系 专业计算机科学与技术 指导教师 目录 【摘要】 (2) 1.Java简介 (3) 1.1Java的诞生 (3) 1.2Java的发展历史 (4) 2.Java的开发环境和特点 (4) 2.1Java开发环境 (4) 2.2java的语言特点 (4) 2.2.1 java技术对新手来说是简单的 (4)

2.2.2 java技术是面向对象的 (4) 2.2.3 java技术是可移植的 (4) 3.雷霆战机手机游戏结构分析 (4) 3.1 初步构思 (4) 3.2 游戏基本框架 (4) 3.3 算法分析 (9) 4.后期优化 (15) 4.1 优化的意义 (15) 4.2 从哪里开始优化 (15) 4.3 何时不用优化 (15) 4.4 结论 (16) 5.参考文献 (16) 6.致谢 (17) J AVA技术对手机游戏的设计与实现 【摘要】 现在,移动电话用户持续增加,手机的功能越来越复杂,且手机的各种服务行业越来越多样化。J2ME 技术将是未来手机游戏的发展方向,许多手机制造商诺基亚、索尼爱立信等和手机游戏提供商非常关心。虽然这一领域的技术不是很成熟,但可以预期,在不久的将来,这项技术必须迅速发展,成为另一个热门手机游戏行业。 该文介绍了基于J2ME的Java手机游戏雷霆战机的设计和实现,Sun Java(TM)无线工具包2.5.2 CLDC 3.2和Eclipse开发工具,比如使用Java语言,开发了一个操作简单、易于使用的飞机射击游戏模

式。色彩斑斓的飞机,游戏背景和各种各样的包和子弹将大大增加游戏的乐趣。从准备到设计实现,论述了游戏的开发背景、总体设计和功能实现等,本文首先对这个游戏的功能分析。紧随其后的是游戏的所有准备工作,包括设计游戏规则、材料制备和接口设计主要设计、类的设计和主要算法分析。核心部分是工作准备,工作就绪后本文将介绍各种效果和实现算法。 【关键词】J2ME;Java;手机游戏;雷霆战机 1.Java简介 1.1 Java的诞生 sun公司在1990年12月,由帕特里克·诺顿迈克·谢里丹和詹姆斯·高斯林组成了一个名为Green Team,主要目标是开发一个分布式系统架构,使其可以运行在消费电子产品操作,Java开始称为Oak(橡木),原因是詹姆斯·高斯林的办公室窗外,偶尔的一棵橡树(橡树),但有一个公司已经使用了这个名字,工程师讨论这个新名字以后喝咖啡,看着手中的咖啡,顺便把Java的名称。 1.2 Java的发展历史 C和C编译器是由sun公司工程师帕特里克开发的,因为当时使用API文档比较困难。所以帕特里克打算切换到下一个目标,并且他拿到了研究公司的“隐形计划项目”。“隐形计划”又称为“绿色项目”,他和其他几个工程师在一个小工作室里面研发新的技术,一种针对家用电器的编程,sun公司预测未来的发展可能在电器领域。最初考虑用的是C语言,但是由于科学家们发现C和API在这些领域有一个很大的问题,工作小组使用的是嵌入式平台,可以使用的资源有限,而且C语言开发太复杂,会遇到很多开发人员遇到的常见的错误,比如,C语言缺乏垃圾回收系统,不利于安全便携。所以他们像要一个平台易于移植到各种设备中。由于现有的资金开发团队决定开发一个新的语言,并在一份报告中称为“未来”,sun 公司工程师认为这个技术应该基于C语言基础上并且面向对象进行。最初命名为C—,但是很快就被放弃了。之后工程师创建的一个新语言命名为他们办公室外的一棵树“橡树”。跟研究其他项目一样,工程师们没日没夜的尝试直到1992年的夏天,他们展示了一个包括绿色操作系统的橡木编程语言。它的硬件最初尝试PDA设备,被任命为star7,生动的图形化界面只能代理来帮助用户。 在1994年6、7月之间,经过三天的头脑风暴之后,约翰·盖吉尔吉斯斯坦、詹姆斯·高斯林比尔欢乐,帕特里克·诺顿韦恩·罗斯和埃里克·库米团队决定改变目标,将这个技术放到万维网,他们认为未来的万维网是高度交互的视觉进化,期望能看到有线的网络电视。同时,帕特里克写了一个小型的web浏览器webRunner,后来改名为HotJava。因此后来橡木重命名为java。

手机游戏分类及简介

手机游戏简介 手机游戏是指运行于手机上的游戏软件。目前用来编写手机最多的程序是Java语言,见J2ME。其次是C语言。随着科技的发展,现在手机的功能也越来越多,越来越强大。而手机游戏也远远不是我们印象中的什么“俄罗斯方块”“贪吃蛇”之类画面简陋,规则简单的游戏,进而发展到了可以和掌上游戏机媲美,具有很强的娱乐性和交互性的复杂形态了。于是,抛弃你的随身听和Gameboy,买一个好手机吧,你会发现,一个手机已经足够满足你所有路途中的大部分娱乐需要了。 手机游戏种类颇多,但总体来说可以分为两大类:单机游戏和网络游戏。手机单机游戏是指手机游戏玩家不连入移动互联网即可在自已的手机上玩的游戏,模式多为人机对战;手机网络游戏是指手机网络游戏是基于无线互联网,可供多人同时参与的手机游戏类型,目前细分类别主要有WAP网络游戏和客户端网络游戏。随着3G的普遍,不少玩家也开始进入了手机玩网游的时代。 备注:a) 客户端网游:可以是由J2ME、Symbian、WindowsMobile、Mophun等语言开发,用户需要下载游戏客户端,登录客户端以后进行联网游戏。 b)非客户端网游:即W AP网游,用户不需下载客户端,可以应用W AP网页而直接联网使用的游戏,W AP网游具备与客户端网游类似的用户在线交互功能。浏览器游戏 差不多1999年以后出厂的每台手机都有一个无线应用协议(W AP)浏览器。WAP本质上是一个静态浏览载体,非常像一个简化的Web,是为移动电话小型特征和低带宽而专门优化的。要玩W AP游戏的话,可以进入游戏供应商的URL(通常通

过移动运营商门户网站的一个链接),下载并浏览一个或多个页面,选择一个菜单或 者输入文字,提交数据到服务器,然后浏览更多的页面。WAP (1.x)版本使用独特的标记语言W ML,允许用户下载多个页面,即卡片组。新版本的WAP(2.x)使用XHTML 的一个子集,一次传递一个页面并且允许更好的控制显示格式。两种版本的W AP都 提供一个比SMS更友好的界面,而且更加便宜,只要根据使用时间付费而不是根据 信息数。但是它是一个静态的浏览载体;手机本身几乎不需要做任何处理过程,并且 所有游戏必须通过网络,所有的操作都是在远程服务器上执行的。手机将继续带有WAP浏览器,而且开发者可能发现WAP有利于传送比游戏应用程序提供的更详细的 帮助信息或者规则,因为大部分的游戏仍然受有限的内存制约。然而,WAP没能达到 高使用率的目标(在欧洲和北美洲,只有6%的手机使用WAP),而且移动运营商和 游戏开发者正在远离W AP技术。我们也不会在这里探究任何W AP的细节。 式多为人机对战。手机网络游戏是基于无线互联网,可供多人同时参与的手机游戏类型,目前细分类别主要有WAP网络游戏和客户端网络游戏。手机网络游戏行业在多年的技术经验与运营经验的积累与总结后,2009年迫不及待的需要创新出新的游戏模式与新的运营模式来推动手机网游市场的爆发。在中国移动百宝箱以及数量巨大的手机上网及游戏用户消费需求刺激下,导致手机用户对手机网络游戏空前高涨的需求欲望,用户群基数快速上升。在目前的市场形态下已经非常可观,通过合理的运营模式转变为切实的最大化收入,随着 3 到来手机联网游戏将很可能达到PC网游的在线用户规模和运营收益。 目前,手机网络游戏产业中,以MMORPG(大型多人在线角色扮演网游)类型和休闲类游戏占主导地位。手机网游MMORPG类型由于游戏本身的剧情、任务、角色、地图、道具等丰富的内容,使得这类玩家具有“沉迷”性,有可能长时间的浸泡在游戏中,既而容易会产生付费冲动。

基于Java的飞机大战游戏开发

毕业设计(论文) 题目基于Java的飞机大战游戏开发

飞机大战是电脑游戏发展史中早期最为经典的游戏之一,无论是在电脑端、移动端、还是游戏机上,都能见到与飞机相关的射击类游戏。不过,最初常见的飞机大战游戏是二维平面上的,并且大多以黑白的形式出现,而如今,在电脑上,不仅机型多,而且五颜六色,3D视觉冲击强。 飞

Plane War is the one of the most classic games in the early history of the development of computer games. We can always see aircraft-related shooting game whether it is on a computer teminal or mobile terminal. However, the first common plane war game is a two-dimensional plane, and mostly appears in the form of has and and development process and the current development status at home and abroad. Then introduces the Eclipse platform development environment and built environment, and finally tells the Java-based aircraft war game features implementation. Its function modules are as follows: the main interface module,Hero module,Enemy module,Bullet module, and the detection module detecting a collision with the

基于Java的手机游戏开发与设计

基于Java的手机游戏开发与设计 摘要在信息技术飞速发展的今天,随着的手机日益普及,手机游戏也成了人们生活中不可缺少的一部分。Java在移动设备上的功能实现也越来越具影响力,为丰富人们的生活,提供服务等方面提供了诸多方便。本文主要介绍一款基于Java语言开发的手机游戏——贪吃蛇,该设计主要是应用J2ME技术,结合JDK 1.6.0,使用IDE Eclipse 3.4与EclipseMe1.7.9作为开发工具,以Sun J2ME Wireless Tool Kit 2.5.2软件作为模拟测试工具的综合性的开发设计。本设计主要是对手机游戏的开发过程的各个环节做了详细的介绍,其中包括:手机游戏开发平台的搭建与测试、具体设计及开发步骤、软件测试运行与打包生成等,实现了经典游戏——贪吃蛇的手机嵌入,以便满足一些手机用户的娱乐需求。 关键字J2ME WTK Eclipse ABSTRACT In the day of rapid development of information technology, with the growing popularity of mobile phone, mobile games also become the indispensable part in daily life. Java in the function realization of the mobile device is also more and more influential for rich people's life and providing services offered many convenient. This paper mainly introduces a mobile game snake of Java language development. This design is a comprehensive development design,which mainly applied 1.6.0 JDK J2ME technology, combined with the Eclipse, use IDE

相关文档
最新文档