的游戏开发领域中,Java 有自己的独到之处,用Java编写的代码简单明了、可移植性强,所以本游戏的开发采用面向对象的设计方法,采用开源开发环境Eclipse,界面利用Java Swing提供的图形类实现,游戏块的运行采用多线程(Thread)机制。
1.3 研究内容
本游戏包括两种游戏模式:单机版和双人对战版。在整个游戏的开发过程中涉及到Java基本知识的大部分内容,如事件、线程、动画、双缓冲图像、图形界面、Socket数据传输等方面的知识。主要内容如下:
1.3.1 Java GUI 编程
利用Java 实现的俄罗斯方块几乎能用到Java GUI 的所有方面,其中包括Sun 公司为Java 提供的两个图形界面类库:
① AWT:其中提供了建立和设置Java的图形用户界面的基本工具。AWT 由Java中的
java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类被称为构件(Components)[1]。
② Swing:是Java Foundation Classes(JFC)的一部分,与ATW 的重量级构件不同,Swing 中大部分是轻量级构件。正是这个原因,Swing 几乎无所不能,不但有各式各样先进的构件,而且更为美观易用。
在本俄罗斯方块游戏的实现中,主要采用Swing类库。
(1) 基本窗口类
图形用户界面的程序效果类似于 Windows 系统下运行的程序。在俄罗斯方块游戏中用到 JFrame 、JWindow 、JPanel 和 JDialog 等几种窗口类。
(2) 原子构件:
俄罗斯方块游戏中用到的原子构件很多,如:JLabel 、 JButton 、 JColorChooser、 JTextField 、 JTextArea 等,这些构件的用法比较简单。
(3) 菜单类:
对一个大的GUI 程序而言通常包括各种菜单,俄罗斯方块游戏中也包含多种菜单,如:JMenu 、 JMenuItem 、JMenuBar 等,Java 为这些菜单构件提供了相应的类。
(4) 事件处理:
大多数的Java 程序通过GUI 构件(例如按钮、窗口、菜单等)与用户进行交互,俄罗斯方块游戏也是如此。俄罗斯方块游戏与用户最重要的交互活动时用户通过键盘来控制游戏、通过按钮和菜单来设置游戏。前者在Java 中表现为键盘事件,后者表现为动作事件。在Java 中事件由分层的事件类表示,而接口则描述了对特定事件的响应方法。想要处理这些事件的类就必须实现一个或多个接口以及这些接口中的方法。
(5) 布局管理:
Java 语言中,提供了布局管理器这个工具来管理组件在容器中的布局[2]。布局管理器按照布局说明选择构件的最佳位置,保证布局的总体外观在不同的操作系统下与Java程序的描述保持一致。
一个布局管理器确定各构件在显示区域的次序、相对大小和相对位置。布局管理器在AWT 中定义为接口,Java 提供了若干类来实现它,其中最基本的类有:FlowLayout 、 GirdLayout 、 BorderLayout 。
(6) 图形类与图形的绘制:
使用Graphics 类提供的绘图方法"public void paint(Graphics g)"可以画出线条、矩形、 圆形等图形。
由于Frame类继承与Component 类,所以可以通过覆盖所继承的paint 方法来进行绘图。还有一种很流行的绘图方法,即创建一个单独的类,这个类继承于Canvas类并且覆盖paint方法。俄罗斯方块游戏采用的是继承于Canvas类的方式。
① Graphics 类
Graphics 类用于在一个可视构件内绘图。一个Graphics对象包含了绘图所必需包含的信息,其中包括坐标、色彩、字体和剪贴板区。绘图在一个二维整数坐标系中进行,该坐标的原点在构件的左上角。X轴在水平方向上从左至右增长,Y轴在垂直方向上从上至下增长。
使用Graphics,都可在需要更新时自动调用repaint方法。repaint方法也可以直接在绘图程序中调用。在repaint中需要调用update方法,update方法在清除屏幕后再调用paint方法。paint方法也可以被实际应用需要的绘图代码进行覆盖。
1.3.2 Java多线程机制
俄罗斯方块的实现充分利用了Java的线程功能。在游戏过程中需要对玩家的控制进行实时处理。由于游戏中方块的动态性,每个方块都有一定的生命周期,所以选用线程来实现方块。一个方块用一个线程对象实现,该类继承于Thread类,当一个方块出现时也就表示一个线程产生并开始运行。通过对键盘消息的响应,实现移动、下落、变形等操作。
利用多线程可以使整个游戏的结构更加松散耦合,使资源更加平衡,使用户的操作更加方便。
2可行性研究
2.1 引言
系统开发的总体任务是实现游戏的可操作性、美观性、及时性。本游戏开发过程遵循软件工程规范,采用结构化和面向对象分析设计方法。主要实现windows的GUI程序开发,对游戏中的图形图像进行键盘控制。游戏者可以通过上下左右键及空格键来对游戏进行操作。下面从技术、经济、操作、法律三个方面分析本系统的可行性:
2.2 技术可行性
可用于本游戏的编程语言有Java 、VC++、C#.NET等,考虑到编写程序的难易程度,和对语言的了解程度以及各种编程语言自身的特点,选择乐Java作为编程语言进行开发。
首先 ,作为一种程序设计语言 ,Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、易移植的、多线程的动态语言。它不依赖于机器的结构,并且提供了并发的机制、具有很高的性能。其次 ,它最大限度地利用了网络,Java的小应用程序可在网络上传输而不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很方便地建立自己的系统。
同时还利用了MySQL数据库系统作为其后台数据库,实现排行榜的存储和查询,确保了该系统中数据处理的高效性、快速性和安全性。
2.3 经济可行性
本游戏是为丰富人们业余生活开发的,规模适中,工作复杂性低,实用性强。从开发人力、物力、时间上考虑,开发成本少。而且利用了开源开发环境myEclipse6.0,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,提高了项目开发的效率,降低了开发成本。由于需求分析完整,减少了很多后期维护的复杂性。另外,本系统具有很实用的现实意义。
因此,从经济角度考虑在线考试系统的开发在经济上是完全可行的。
2.4 操作可行性
本游戏是采用java的GUI ( 图形用户界面) 组件创建的简单有好的操作界面,运行也效果简单明了,所有功能均根据基本需求进行开发。强调人-机-环境三者作为一个系统进行总体设计。使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。对所有数据的输入进行完整性和合法性检查,尽量减少误操作。因此在操作上是可行的。
2.5 法律可行性
本游戏的开发作为毕业课程设计以提高分析和解决实际问题的能力,以个人为单位,仅供个人平常娱乐所用,所用他人的成果部分都已注明。所以不存在侵权的问题。该软件是合法的,不会引起任何社会问题。因此,从法律上考虑本系统是可行的。
2.6 结论
综上所述,本游戏在技术方面、经济方面、操作方面、法律方面均是可行的,由此得出结论:本游戏软件的技术成熟、完备。各方面均无重大问题,因此本游戏软件可开始着手编写。
3需求分析
3.1 引言
需求分析是软件定义时期的最后一个阶段,也是关系到软件开发成败的关键步骤。它的基本任务是准确回答"系统必须做什么?"这个问题[2]。即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求[3]。在这个阶段中,开发者要做大量的调查和研究,收集信息,明确系统功能。需求分析的结果是系统开发的基础,它的成功与否直接关系到项目的成败和软件的质量。对软件需求的理解程度是决
上一篇:
个人网站毕业论文(word文档)
下一篇:
西班牙语医院科室名称