运筹学课程论文范文

滨江学院

运筹学课程论文

题 目 棒打猪头游戏设计

院 系专 业学生姓名 倪 健

学 号指导教师职 称 讲 师

二O一一年六月二日

目 录

摘要··················································································1 关键字···············································································1 1 引言················································································1 2 游戏类型·········································································1

2.1 角色扮演类·····································································1

2.1.1 RPG游戏的发展史························································1

2.1.2 AD&D··································································1

2.1.3 RPG游戏架构····························································2

2.1.4 代表性游戏·····························································3

2.2 动作类·········································································3

2.2.1 动作类游戏的发民史······················································3

2.2.2 动作游戏的类型··························································3

2.2.3 动作游戏的架构··························································4

2.3 动作角色扮演···································································5

2.3.1 动作角色扮演的发展······················································5

2.3.2动作角色扮演游戏的技求··················································5

2.3.3动作角色扮演游戏的架构··················································5

2.4 冒险类·········································································6

2.4.1冒险类游戏的发展························································6

2.4.2冒陡类游戏的特点························································7

2.4.3冒陡类游戏的架构························································7

2.5 策略类·········································································7

2.5.1引策略类游戏的发展······················································7

2.5.2 策略类游戏的特色························································8

2.5.3策略类游戏的架构························································8

2.6 模拟类·········································································9

2.6.1 模拟类游戏的发展························································9

2.6.2 模拟类游戏的特色························································9

2.6.3 模拟类游戏的架构························································9

2.7 动作类·········································································10

2.7.1运动类游戏的发展························································10

2.7.2运动类游戏的特色························································10

2.7.3 运动类游戏的架构························································10

2.8 益智类·········································································11

2.8.1益智类游戏的发展························································11

2.8.2益智类游戏的特色························································11

2.8.3益智类游戏的构架························································11 3 系统开发工具及环境····························································12

3.1 程序设计语言选择·······························································12

3.2 Java简介·······································································12

3.3 开发工具选择···································································13

3.4 系统软硬件要求·································································13 4 系统总体设计···································································14

4.1 游戏背景和规则·································································14

4.2 游戏需求·······································································14

4.3 游戏流程图·····································································15

4.4 程序类的实现···································································17

4.5 游戏界面设计···································································17

4.6 处理游戏结束···································································18 5 详细设计········································································18

5.1 运用AWT组件··································································18

5.2 “开始游戏”与“结束游戏” ·····················································19

5.3 游戏难度设定和网页特效·························································19

5.4 声音的使用·····································································20

5.5 程序流程图·····································································20

5.6 联机游戏的随想·································································20 6结束语··········································································21 参考文献···········································································22 ABSTRACT········································································23 Keywords···········································································23

棒打猪头游戏设计

倪健

南京信息工程大学滨江学院信息工程专业,南京,210044

摘要:本文使用Java系统开发了一个类似敲地鼠的益智小游戏,在此游戏中玩家用鼠标控制棒槌来敲打不断随机出现的猪头,在结束游戏时系统会统计在游戏时间内玩家所消灭的猪头数。在游戏过程中玩家可以锻炼自己的反映能力和眼手协调度,在游戏过程中身心都能得到发展。

关键字:游戏;Java;敲地鼠

1 引言

J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是电子设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。

随着电脑的日益普及、Java功能在移动各种电子设备上的实现,Java应用程序产生的一系列服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款休闲益智游戏程序——棒打猪头。本课题将老少皆宜的经典作品移植到电脑上来,为当前流行的硬件平台提供了应用软件。

2 游戏类型

2.1 角色扮演类

角色扮演的游戏,又称为 RPG(Role Playing Games)类型游戏,以现今的游戏类型来说,虽然称不上是最多的,不过可以确信这一种类型的游戏玩法是目前最流行的。但是有许多人对于RPG游戏的类型都只能一知半解。

2.1.1 RPG游戏的发展史

最初的角色扮演游戏是在纸上进行的,而纸上角色扮演的起源来自纸上的战略游戏。事实上,在很久以前,欧洲和美国的许多人都非常热衷于玩纸上的战略游戏。所谓的纸上战略游戏,其玩法就是参与游戏的玩家在纸上画出一个特定的地图,而在地图上利用各种抽象的纸片,符号或者是以一般的小塑料块来玩战术与战略的过程。

2.1.2 AD&D

AD&D是一个非常新的名词,或许会有许多人问什么是AD&D,AD&D有代表什么意义。其实AD&D的最前身就是采用“龙与地下城”的架构。“龙与地下城” 是以剑与魔法的奇幻世界为主要背景的桌上角 1

色扮演游戏(TRPG)规则系统,通常称为D&D(Dungeons & Dragons)目前已经出版到第三版。而最新的版本因为在进行游戏的时候,它主要会使用到二十面骰子,所以称为d20系统。

AD&D的系统则是厂商推出新版本后,将其改名为 Advanced D&D,而之后出现的第三版本,虽然又改名回原来的D&D,可是未来还是会以AD&D来命名,不过这应该只会用来指“旧版”游戏版本的意思。 基本上,几乎可以说“龙与地下城”创造了RPG这种游戏类型。“龙与地下城”的第一版出版于1973年,它是由纸上战棋游戏转化而来的,而当时这种纸上战棋游戏还未有RPG的成分存在,而在“龙与地下城”所推出的初版获得相当大的成功之后,它也带起了RPG的发展。

在改版之后,“龙与地下城”便移植到计算机游戏上,并且掀起了“金盒子系列”的RPG游戏热潮。近年来的“柏德之门”、“冰风谷”等系列游戏也采用了“龙与地下城”的规则系统。另一方面,“龙与地下城”在80年代初期就被引进到日本,所以“龙与地下城”的规则系统不论是对日本的电玩或奇幻文学界,甚至以日本自行开发的游戏系统来说,它都造成了相当深远的影响。

事实上,在许多今日盛行的网络游戏中,还是可以看到“龙与地下城”的影子。例如风靡全球的“无尽的任务”(Ever Quest)游戏中,它可以说是将“龙与地下城”的精神加以“具象化”。而国内盛行的网络游戏“天堂”更是参照了“龙与地下城”第一版的早期规则。

AD&D创造出RPG的游戏基础架构,而他也影响到之后的RPG发展方向。不管现在的RPG游戏变化有多复杂,他还是脱离不了AD&D的系统规则。

2.1.3 RPG游戏架构

以RPG的游戏架构来说,它是由许多游戏玩法机制所综合而成的。单纯以一个简单的场景来说,当操作的人物在路上行走的时候,可能会不确定地遇上敌人的攻击,或捡拾到装备宝物,或者是触发一些特定的事件等,这些都必须经过企划人员的深思熟虑设计。关于RPG的游戏做法,或许用户会问:“那要怎么样才能让玩家在游戏里找寻到乐趣呢?”其实不管所设计出来的RPG游戏有多复杂或者是有多困难,它都不外乎几项基本的原则,如下所示。

人物的描写:RPG游戏最主要的就是强调人物的属性描写与它的背景故事表现,以达到角色扮演的目的。简单地说,RPG游戏就是要让玩家能够感觉到游戏中的人物就像是自己在扮演一样。

宝物的收集:RPG游戏的另一项较为有利的原则,就是宝物的收集。不管是装备或者是宝物,甚至于如同“太空战士” (FINA FANTASY)游戏系列中的“召唤兽”机制,这些都可能成为玩家会想要继续玩下去的理由。

剧情的事件:RPG游戏的主要轴心就是它所呈现的故事剧情内容,这种故事剧情能将角色扮演的成分提升至最高,强调角色在故事里存在的必要。

华丽的画面:为了提高RPG的游戏质量水平,华丽的战斗画面是不能忽略的重点,因为它常常会使得玩家们对游戏爱不释手,就如同“太空战士”系列一般,它的3D真实战斗画面深深地吸引着玩家,而且让玩家们成为它忠实的FANS。

职业的特色:这是RPG游戏类型较为成功的游戏机制,所有的人物都有自己独特的个性,再加上本身所属的职业,让角色的属性更突显出来,如勇士、魔法师、僧侣等,每一种角色又可以与其他的角色能力作互补,这项原则更加强了RPG游戏的质量与内容。

2

以RPG的游戏来说,相信通过以上的几项原则,可以使用户很轻易地了解到RPG游戏的重点因素。接下来看看几个足以代表PRG类型的游戏。

2.1.4 代表性游戏

以单纯的RPG游戏来说,如同史克成尔公司(SQUARE)出品的“太空战士”系列(FINA FANTASY,简称 FF),它就是一个很明显的例子;以 AD&D系统来说,如同“柏德之门”(Baldur's Gate)它也是一个相当成功的例子。柏德之门以 AD&D系统作为游戏的核心,成功地将原本是纸上的RPG游戏系统带进电子游戏系统中。

RPG游戏从纸上慢慢地移植到电子游戏平台的速度不是很快,经过不断地修改角色扮演的游戏方式,现今不管是在纸上的RPG游戏,还是电子游戏平台上的RPG游戏,始终占有一席不败之地;不管是刚接触RPG游戏的玩家还是资深的老手,就RPG游戏来说,它始终是玩家们的最爱。

2.2 动作类

动作类游戏又称为ACT(Action Game),他可说是游戏界上占有最大市场的游戏类型,只要你是游戏玩家,那么一定不会排斥这种动作类游戏的玩法,因为动作类游戏是所有游戏类别最基本的游戏玩法模式。从近年来的主机平台功能的升级,动作类游戏在玩法上变的很复杂,内容更加丰富,它带给游戏玩家的那一份刺激感是我们不可否认的。

2.2.1 动作类游戏的发民史

动作类游戏可以说是所有游戏类型中最为单纯的,所有的游戏类型都是从动作类游戏的变形演化而来的。在早期的游戏产业里,游戏平台只能支持低位的成像处理,因而平台不能作非常复杂的运算,所以动作游戏就在这个时候诞生了,如同小时候玩的“小蜜峰”游戏,这类的游戏不须要花费太多的心思与时间,即可让游戏顺利地进行下去。到接下来任天堂红白机上的“超级玛丽欧”游戏,它将动作游戏的指标带至顶峰,当时多少人为了破“超级玛丽欧”的游戏,而不分昼夜、无时无刻不去玩它,更夸张的是竟然有人可以练到破除“超级玛丽欧”的所有关卡只要花上三分钟的时间。诸如此类,动作游戏所带来的热潮是从以前到现在永远都不会退烧的。

2.2.2 动作游戏的类型

2D动作:2D动作类以2D平面的表现方式来呈现游戏中的画面。在画面中, 玩家必须躲过所有的障碍物与攻打敌人为主要轴心,并且在游戏中寻求特定的目的来破除关卡。

3D动作:单纯的3D动作游戏与2D的动作游戏玩法大致相同,不同的是3D动作游戏的画面讲求的是3D立体真实感而已。

射击类:射击类的动作游戏可以利用2D平面或者是3D立体的画面来呈现,其玩法大都是以飞机射击类为主,其强调的是画面中的枪林弹雨所带来的刺激感。

格斗类:格斗游戏发展时间较单纯的动作游戏晚,它是从单纯的动作游戏演变而来的。从红白机任天堂的“功夫”来看,它就是属于非常单纯的格斗游戏,只要在一个场景中,一个由玩家所操作的主角, 3

一个由计算机所控制的敌人, 形成了一种你打我、我打你的游戏机制。格斗类游戏一直发展到现在,它又加入了剧情、连续技与多人格斗的游戏机制,这些机制让格斗游戏的内容更加丰富有趣。

第一人称射击类:第一人称的射击游戏可说是动作游戏类型发展过程中最晚的一种游戏形态,如同以前在计算机PC上的“德军总部”,当时它发挥了超高的3D显像技术,让多少人叹为观止,尔后便陆陆续续地出现了许多更为精致、更有内容的第一人称射击游戏,如同“战栗时空”(Counter Strike,简称 CS)。

其他:除了上述的各种类型的动作游戏之外,还有一些热门的动作游戏机制,如大型机平台的跳舞游戏机制,它能带动玩家做更刺激的动作行为。当时将跳舞的机制呈现在游戏中,造成一股玩跳舞机的热潮,因为这种热潮的影响,它又渐渐被带入到电视主机与计算机平台上。在了解了动作游戏的类型之后,接下来再深入探讨一下动作游戏的架构设计。

2.2.3 动作游戏的架构

动作游戏的架构是所有游戏中最为简单的一种,先以一个简单的流程图来说明动作游戏是如何来进行的,如图2-1所示。

图2-1游戏流程图

在图2-1中看到,游戏是由一个循环组成的,在游戏还未结束之前,游戏一直以环绕着循环的原则执行。而在循环中,游戏就必须要处理各种事件因子,这些事件因子用来处理游戏中所发生的每一件事情,如玩家操控飞机、飞机的子弹发射、敌机的飞行控制等,其过程原则不外乎下列三项。游戏开始,游戏中的处理,游戏结束。

其实拿RPG游戏与动作游戏来比较,动作游戏显得单纯了许多,而故事剧情也比PRG游戏短。所以,为了让动作游戏更加好玩,就必须在玩家们玩的过程中下很多功夫。通常,动作游戏的流程速度是非常快且刺激的,而PRG游戏主要的成分是在讲故事,所以它的流程速度可能没有动作游戏来的快,不过RPG游戏的内容却远远大于动作游戏。既然这两种游戏类别有着不同的优点,那何不将这两种游戏的类

4

型合而为一呢?是的,在游戏的世界里,就创造出了将这两种游戏机制的优点合而为一的类型,那就是“动作角色扮演”游戏。

2.3 动作角色扮演

“动作角色扮演”(Action Role Playing Games,ARPG)它所发展的时间较 RPG游戏与动作游戏还要晚,因为它以动作游戏紧凑的玩法与RPG游戏剧情的流程为主轴,这让玩动作角色扮演游戏的玩家可以玩到动作游戏的刺激感与RPG游戏的角色扮演机制,所以它又让游戏产业再度掀起一股独特的热潮。

2.3.1 动作角色扮演的发展

以动作角色扮演来说,最早带起这股热潮的应该算是计算机上的“暗黑破坏神”(Diablo)与电视游戏主机上的“萨尔达传说”(Legend of Zelda),它们打败了当时很单纯的RPG故事剧情叙述与单纯的动作游戏,以RPG游戏故事为轴心,再以动作游戏的表现方式,让玩家可以在游戏中看到整个角色扮演的故事情节发展与直觉式的打斗方式。在未来的几年里,动作角色扮演的游戏表现方式,足以占所有游戏产业的一大半。

2.3.2 动作角色扮演游戏的技求

以动作角色扮演的技术来看,它是所有的游戏类别中包含最多的。在设计一套动作角色扮演游戏的时候,设计者就必须要考虑得非常详细,而程序设汁者又要将动作游戏与RPG游戏这两种游戏机制合并成另一种游戏玩法。简单地说,它就如同在做两套游戏一样,一种是动作游戏的角色控制,另一种是故事剧情的流程运作,其花费的精力与时间是相当多的。建议如果要做一套动作角色扮演游戏的话,就必须很精确地估算开发的周期、流程的控制,以及所花费的人力与金钱,不然这会很容易让游戏胎死腹中的。

接下来介绍一下开发一套动作角色扮演的游戏需要哪些基本技术。

故事剧情架构:动作角色扮演的故事剧情其实与RPG游戏是相同的,所以必须撰写一些可以引导所设计的人物故事背景的交待。

人物特色表现:同上述所讲,人物的特色与RPG游戏设计的方式是相同的。

场景对象配置:在场景与对象的配置手法上要比单纯的RPG游戏还要仔细,因为在场景中,不只是单纯的玩家所操控的对象在移动,它还包含怪物、NPC人物的移动,如果分配得不好,那么就有可能造成玩家根本打不到怪物或拿不到宝物的现象发生。

物体动作设计:动作RPG主要的操作模式就是玩家所操作的主角去做任何一件可以做的事,如打敌人或拿宝物等行为。游戏设计者必须去编列所有物体的动作行为,如此一来,才能够让游戏更为生动。

在了解了动作RPG游戏的有关技术之后,接下来介绍一下动作RPG游戏的基本架构。

2.3.3 动作角色扮演游戏的架构

其实,动作角色扮演游戏的主要架构很简单,就是将动作游戏的架构与RPG游戏的架构合并成一种而已,从图2-2中可以简单地看出动作角色扮演游戏的基本架构。

5

图2-2 动作角色扮演游戏的基本架构

可以从图2-2中看到,RPG游戏的故事剧情包含着动作游戏的人物行为,而人物行为又包含着杀敌人、取宝物等基本的事件。如此一来,让动作RPG游戏更显得真实与生动。

从“暗黑破坏神”发售以后,它改变了游戏产业的视觉热潮,之后更有许多游戏仿照“暗黑破坏神”的游戏玩法模式。在近几年来,动作RPG的游戏仿佛已经席卷了整个游戏市场,特别是它又加入了网络联机的功能,这让玩家不只可以在单机平台上玩,而且它更能够让玩家呼朋引伴在游戏中大肆杀敌。越来越多的玩家接受它的游戏机制,也有越来越多的玩家在设计不同故事剧情的动作RPG游戏。而动作RPG游戏的刺激感与RPG游戏的曲折故事发展,所带来的丰富性与娱乐性,远远超过单纯的动作游戏或RPG游戏。

2.4 冒险类

说冒险类游戏(Adventure Game,AVG)为动作类游戏,其实在很多游戏类型当中,它们都有许多共通点,惟一不同的是它们只有一些特殊条件不太相同而已。就冒险类游戏来看,它有角色扮演游戏类型的人物特色,却没有角色扮演游戏类型的人物升级系统。简单地说,在冒险类游戏中可能会非常强调人物故事剧情的进行,可是人物本身的等级强弱却不会是游戏中的重点。

2.4.1 冒险类游戏的发展

冒险类游戏的内容含有相当多的解谜与冒险成分,它没有RPG角色扮演游戏的升级系统。换句话说,主角的属性通常是固定的,其类型本身最主要的目的是要让玩家在游戏中不断地思考,来获得解决各种问题的答案,其发展最经典的游戏应该属于日本“卡普空”(Capcom)公司所发行的“恶灵古堡”(Biohazard)系列游戏与 Eidos公司所发行的“古墓奇兵”(TOMB RAIDER)系列游戏,虽然它们的故事内容不尽相同,可是它们都有一个共通点,就是以解谜为游戏的主轴。

到现今游戏的发展中,不难发现冒险类游戏通常以悬疑紧张的故事剧情为游戏的轴心。通常主角会来到一个充满机关的城镇或建筑物里,在这些地方则有着不可告人的秘密或宝藏,玩家必须突破各种机关或关卡,来达到游戏中的目的,使得思考与紧凑的剧情让玩家可以乐在其中。

6

2.4.2 冒险类游戏的特点

在制作冒险游戏的时候,可以遵循以下几项特点。

强调人物的刻画:冒险类游戏强调的是说明角色在故事里的存在情况,也就是说,角色的背景需要非常清楚地让玩家们了解,所有在故事剧情里出现的人物都必须有它们存在的合理性与意义。

合理的故事剧情:冒险游戏非常重视故事剧情的发展,它是吸引着玩家继续玩下去的最有利工具,合理又悬疑的剧情让玩家能够很容易地融入游戏当中,让玩家会一直想要看到故事剧情的结果而一直不断地玩下去。

丰富的机关结构:冒险游戏最主要的结构是以各式各样的机关来构成的,具有丰富性与合理性,而且又不会太难破解的机关,让玩家能够乐于其中。而游戏中的机关通常是游戏进行的主要干道,所有的故事剧情都可能在机关的前与后发生,所以机关成了冒险游戏不可或缺的主要结构。

2.4.3 冒险类游戏的架构

其实冒险类游戏不外乎是动作RPG游戏类型的变形,它具有动作RPG游戏类型所没有的特征,虽然缺少了RPG游戏的角色升级系统,却多了解谜冒险的成分,让玩家除了玩到角色扮演的游戏之外,又可以玩另一种不一样的游戏模式。

冒险类的游戏架构其实与RPG游戏类型的架构非常相似,只是冒险类游戏还必须加上大量的合理机关与剧情发展,让玩家感觉到就好像在看一场电影、一本小说一样。冒险类游戏如果再复杂一点,还可在游戏中加入分支的剧情,这样会更加提升冒险类游戏内容的丰富性。

从近几年的冒险游戏看来,其内容的丰富性与美式电影风格的制作手法,已经让冒险类型的游戏成功地打动了玩家的心,在未来的游戏市场具有很大的发展空间。

2.5 策略类

策略类游戏(SLG)也属于让玩家具有思考的一种游戏类别,早期的策略型游戏以战棋为主,如象棋、军棋等,主要是让玩家能够在一场特定的地形之中,运用自己的思路来布置属于自己的棋子,并借以打败对方。以早期的战棋游戏而言,是对方走一步,我们才能走一步,而现今的策略型游戏又加入了实时功能的游戏机制。简单地说,在一个特定的地形中,在做内政、军事的整备,对方也一样是在做相同动作的整备,不会因为我们没有动作,对方也不会有动作,相当符合现今的战略游戏。如果自己不善于各种命令的整备,到那时候只有被对方攻打的份了。

2.5.1 策略类游戏的发展

其实策略型游戏发展得相当早,以象棋游戏而言,它就是一个非常经典的策略型游戏,以自己所属的战棋,依据自己的思路布置战棋来攻打对方,以及防守自己。这是属于较为单纯的策略型游戏,因为它只能以“一次走一卒”的方式来进行游戏,这样不但少了游戏的紧凑性,亦少了一分战争的乐趣。但后来经过不断地改良策略型游戏,也就是在游戏中加入了“实时”的游戏机制,成功地打造出了策略型游戏的另一个天空,如Blizzard公司出的“星海争霸”(StarCraft)最为成功,它以各种不同的种族为单位,而这些不同的各个种族之中又细分出不同能力的角色小单位,让战棋游戏更添加了不少的乐 7

趣。后来微软公司(Microsoft)又出了“帝国时代”(Age of Empires)游戏,征服了整个游戏市场,尔后不管是国内还是国外更以这种游戏机制出了大大小小不同的游戏,可见策略型游戏的力量是我们不可忽视的。

2.5.2 策略类游戏的特色

策略型游戏的最大特色就是多人联机的机制,以早期的战棋游戏来说,可能只能够让两个人来进行游戏,而现今的策略型游戏主要的乐趣就是取决于多人联机的厮杀过程,在游戏中可以结盟亦可以反目成仇,以两个人的力量来灭掉另一个种族;亦可以翻脸不认人,在同盟时期又去杀同盟国;在游戏里可以利用以物克物的方式来攻打对方,对方亦可以以同样的方式来攻打我们。所以策略游戏最大的特色就是如何运用我们的思路来配置战棋兵种以及管理内政或开发。

其实策略类游戏除了战术模式之外,它还包括另一种游戏方式,这种游戏方式就是“经营”。所谓“经营”即是让玩家去管理一种运作系统,如城市、交通、商店等。玩家需要凭着自己的思路经营一种运作系统,像较为有名的经营策略型游戏——美商艺电公司所发行的“仿真城市”系列与“仿真市民”系列。虽然此类游戏有人将它归类在“模拟类”的游戏类型,不过我认为它是玩家必需去经营的一套运作系统,所以将这一类型的游戏归类在“策略型”游戏之中。

策略型游戏还有一种较为人知的游戏模式,那就是“养成”的游戏机制,比如较为经典的“美女梦工厂”系列游戏,它是以供养一个小女孩为主轴的游戏,目的是要小女孩成为游戏中有名有利的人。此类型的游戏在当初刚上市的时候,造成游戏界的一股大轰动,其后有许多相类似的产品出现。

还有一种也属于策略型游戏,那就是谋略类,最具有代表性的游戏就是KOEI公司所出的“三国志”系列游戏,它也偏向经营类,不过此种类型的游戏多了一种可以攻打敌人的游戏机制,游戏整体看起来,就像是古时候的谋略战争。

其实策略类游戏是所有游戏类型中包含最多类型的一种游戏模式,是很容易分辨的。其游戏的模式只要是让玩家花上心思,来达到另外一种目的的游戏,我们都称它是策略型游戏。

2.5.3 策略类游戏的架构

策略型游戏的架构较为简单,以现今的游戏来说,可以分为两大类,分别是“单人剧情类”与“多人联机类”。

单人剧情类:以单人单机为主,其目的是让玩家可以操作自己的战棋,来实现单关的故事剧情。玩家既可以玩丰富的故事剧情,又可以随着自己的意思来布置自己的战棋以攻守计算机的战棋,来完成单关任务。

多人联机类:以多人多机的方式来进行游戏,目的是让游戏中的玩家可以呼朋引伴在游戏中来一场大厮杀,而在没有联机的情况下,玩家也可以与计算机对战,以自己的开发思路来打败对方。

随着网络的蓬勃发展,联机游戏越来越多,以策略型游戏来说,几乎占据大部分的网络游戏市场。策略型游戏可说是近几年里最为热门的游戏机制,其实我已经说了这么多的游戏类别,可是我却都一直还没讲到在线游戏的机制类型。说真的,我不将在线游戏机制另外归类成一种游戏类别,原因是在线游戏的类别脱离不了上述的几种类型,只是在线游戏多了一个网络的游戏机制而已,不同的是游戏中的数据库与玩法比上述所提的几种类型更加庞大。

模拟类游戏(Simulation Game,SIM),顾名思义,就是模仿某一种行为模式的游戏系统,最主要的目的是实现某一种直接行为。通常模拟类的游戏模仿的对象有汽车、机车、船、飞机,甚至宇宙飞船。虽然用户可能买不起汽车或飞机,但能从游戏中感受到汽车奔驰在马路上的快感和飞机翱翔在天空中的自由,这就是模拟类游戏的最主要目的。

2.6.1 模拟类游戏的发展

其实单以模拟类游戏来说,它的由来应该是当时用在模拟飞行机具上的运作系统。当时一台飞行机具的造价都非常高,对于一个不太熟悉飞行机具的驾驶员来说,冒然地让他驾驶一台飞行机具是很危险的。所以科学家就开始研发可以模拟飞行机具的各种物理现象与突发状况,以供飞行员练习,对于让他们直接驾驶飞行器来说,这可以减少掉许多不必要的麻烦,这就是模拟类游戏的原型。

之后,这种仿真系统慢慢地引进到游戏当中,当时玩家的心态就是自己没有办法买到昂贵的驾驶机具,他们也能够在游戏中寻找到驾驶的乐趣。

演变至今,模拟类游戏从飞行的机具,慢慢地衍生到所有的硬件机具上,如汽车、机车等,到现在甚至还能看到模拟云霄飞车、火车及未来机器人的仿真系统。

2.6.2 模拟类游戏的特色

模拟类游戏最大的特色就是模拟机具的真实感与它的刺激感,模拟游戏着重于机具的物理原理与大自然不变的定律,让玩家可以从玩游戏中感受到真实地存活在游戏的虚拟环境中。在现今模拟类游戏还朝向人类的虚拟生活,比如“虚拟现实”(Virtual Reality,VR),它可以模拟出人类生活的周遭环境,比如建筑物、花园等。在建筑物还未建造之前,我们可以利用虚拟现实的技术,先造出一系列的建筑物环境,提供给使用者观赏。

其实模拟类游戏的最大特色就是可以让使用者或玩家在没有接触真实的硬件机具设备之前,可以很客易地感受到这些机具设备所带来的乐趣。

2.6.3 模拟类游戏的架构

仿真类游戏的架构较重视物体的自然物理反应,简单地说,一颗铅球由半空中落下,它并不会像羽毛一样,还会随着风飘动。一个物体的移动,如同车子的移动,它必须符合物理的原理才可执行,如违反物理的原理就会让玩家感到无所适从。所以在制作模拟类游戏的时候,一套成功的模拟类游戏就要包含许多科学的原理,如风阻、摩擦力等,这样的模拟游戏才会更加吸引人。

模拟类游戏具有科学的表现,其游戏的内容有着许许多多的数学及物理的运算,如果没有,那就是一点都不符合常理,玩家在玩此类游戏的时候,便会找不到它的刺激感,如赛车游戏。以现今模拟类型的游戏来看,它具有固定玩家市场,许多人喜欢车子,可是又买不起真实的车子或者是不能在真实的生活中寻求到赛车的乐趣,所以只能在模拟游戏中去寻找,就如同接下来要谈的运动类游戏一样。

运动类游戏(Sports Game,SPT)与模拟类游戏有异曲同工之处,运动类游戏也必须要符合大自然的物理原理,不过,模拟类游戏较注重机具类型,而运动类游戏就比较注重人体活动的行为。什么是人体活动的行为呢?简单地说,只要是具备重复性动作的活动都可视为人体活动的行为,亦称为运动,而运动类游戏的目的就是用来达成这种行为。

2.7.1 运动类游戏的发展

以早期的运动类游戏来看,运动类游戏仿佛只是为喜好运动而不能亲自去参与的人制作出来的游戏,而后来真实的运动也有越来越多的人喜欢,导致运动类游戏大幅增加,从篮球运动、足球运动,甚至高尔夫球运动,都慢慢地被带游戏当中。像后来的世界奥运的各种比赛项目也被带进游戏当中,这让运动类游戏在游戏世界里占有一席之地。

其实运动类游戏也让玩家有着另外一种很奇妙的行为,那就是有许多玩家可能会因为支持真实比赛中的某一个队伍,而爱上玩运动类游戏;甚至于为了让支持的队伍打败其他的队伍,不惜日夜地锻炼支持的队伍,来满足心中的不平。

2.7.2运动类游戏的特色

运动类游戏的特色最主要的就是表现某一种类型的运动,在与真实运动比赛相同的环境下,和计算机或朋友打一场属于自己的运动竞赛,足以满足自己或朋友对运动的热爱。

运动类游戏以球类运动占多数,不管是篮球、高尔夫球、还是足球,只要是多人热衷的运动,此类型的运动类游戏的占有率就越高,其主要的特色就是突显出此类运动的刺激性与临场感。

2.7.3 运动类游戏的架构

运动类游戏的架构简单地说,它与动作类游戏的架构大致相同,不同的是运动类游戏着重于特定的运动项目,主要的架构会依据运动的类型来制作。如同网球运动,其人物架构可能是一个玩家操作一至两个人,而足球运动则可能由一个玩家来操作一至多人,所以要制定出运动类型的游戏架构,就必须依照真实运动的类型来定义或规划。

不过,不管是哪一种运动游戏,都可以依据下列两项原则来规划运动类游戏。

确认运动的类型:每一种运动的规则与场上人物的配置大不相同,所以规划某运动游戏之前,必须了解此种运动的完整规则与人物上场时所分配的位置,甚至于赛场上的战术,以供制作计算机人工智能的时候所使用。

突显运动的特质:每一项运动都有它的基本特质,比如篮球运动,它的特质就是在两支队伍攻防当中的临场刺激与紧凑的比赛;而台球运动,它的特质就是注重球的运动方式与撞球的准确度。上述这两者都属于运动类的游戏,不过,玩法却大不相同,所以必须要去突显出运动类游戏本身的特质,才能使玩家更容易接受。

虽然运动类游戏在游戏市场中只占了小小的位置,不过,在真实生活中的运动热潮,足以带动运动类游戏的抬头,比如世界足球赛,在比赛的前、中、后时段里,不知道有多少人为之疯狂,更带来足球运动游戏的无限商机。

益智类游戏(PUZZLE GAME,PUZ)较着重于玩家的思考与逻辑判断,运用玩家的思路完成游戏中的目的。通常玩益智类游戏的玩家都必须要有恒心与耐心,思索着游戏中的问题,再依据自己的判断来执行,目的是突破各项不同的关卡。益智类游戏不会让玩家们死按活按键盘,所以要走的步骤都必须加以思考,在一定的时间内做出正确的判断。

2.8.1 益智类游戏的发展

以最早期的益智类游戏而言,黑白棋与五子棋应该是益智类游戏的最原始玩法,从最早的纸上游戏,慢慢再带到电子游戏中。益智类游戏的发展,应该都是从早期的纸上游戏衍生出来的,我记得小时候的方块游戏,它是由各种不同形状的方块所构成的,目的是要将各个方块拼凑在一个方框内,它有许多种排列组合,就必须依照自己的思路来完成拼凑。以上述的方块游戏,不难看出,电子游戏中“俄罗斯方块”游戏的玩法是不是有些相似的地方呢?再如“宾果”游戏,“宾果”游戏也是利用两个相同的图案来取得方块,等方块全部拿光后,再来看谁的方块比较多,多的人为优胜。 由上述两个例子来看,益智类游戏的始祖都应该是早期的纸上游戏。

到了游戏中后期,益智类游戏开始以博弈为主要的市场,将益智类游戏制作成平日所玩的纸牌、麻将,将原来只有在桌面上的博弈游戏,搬至电子游戏中,发展至今,更有赛马、赛船或赛车等赌博益智游戏的出现。

2.8.2 益智类游戏的特色

益智类游戏的特色就比较单纯,在游戏中它不需要玩家利用快节奏的表现方式来呈现,反而它比较偏向慢条斯理的玩家,其最主要的目的是能让玩家去运用自己的思考逻辑来做出不同的判断。

2.8.3 益智类游戏的构架

介于益智类游戏的机制大多来自早期的纸上游戏,所以在规划益智类游戏的同时,必须去分析了解纸上游戏的玩法规则,并且将它加以变化,简单的说,取纸上游戏的主要架构,再加上自己所创造的游戏玩法和机制,就可以制作出比原先纸上游戏更多变化的益智游戏。

益智类游戏的架构可以归纳以下几点要素:

游戏的规则和玩法:在制作益智游戏之前,必须先去了解游戏的全盘规则以及他的各种玩法。 游戏的衍生和变化:可以将原来纸上游戏转变成另外一种形态来表现,例如此文所介绍的棒打猪头,原来只是确认方格内有无东西,现在可以将它转变成随着时间延长而不断闪现的动画游戏。

独创性的游戏机制:益智类游戏的变化成分原本就不多,所以必须加入其特定游戏的独创性,让益智类游戏的内容更加丰富有趣。

3 系统开发工具及环境

3.1 程序设计语言选择

面向对象是一种认识世界的方法,是一种程序设计方法。面向对象的程序设计吸取了结构化程序设计的先进思想,并把它们同几个支持用户用新方法进行程序设计的有力概念结合在一起。面向对象的观点认为,客观世界是由各种各样的实体,即对象组成的。每种对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用就构成了各种不同的系统,并进而构成整个客观世界。按照这样的思想设计程序,就是面向对象的程序设计。所有面向对象的程序设计语言一般都包含三个概念:封装、多态性和继承性。

C++和Java在面向对象这方面比VB要强,所以我排除了用VB实现的可能性。但是C++为了与C语言兼容,其是包含了些面向过程的成分;Java去除了C++中非面向过程的部分,其程序编写过程就是设计、实现类,定义其属性、行为的过程;还有Java特有的“沙箱”机制是其安全性的保障,同时它去除了C++中易造成的错误指针,增加了自动内存管理等措施,保证了Java程序运行的可靠性。基于这些原因,我选择用Java语言来进行程序实现。

3.2 Java简介

Java是定义位于网络计算的计算机语言,它几乎所有的特点也是围绕着这一中心展开的并为之服务的,这些特点使得Java语言特别适合于用来开发网络上的应用程序;另外,作为一种面世较晚的语言,Java也集中体现和充分利用了若干当代软件技术新成果,如面向对象、多线程等,这些也都在它的特点中有所反映。

(1) 开台无关性

如前所述,Java语言独特的运行机制使得它具有良好的二进制级的可移植性,利用Java,开发人员可以编写出与具体平台无关、普遍适用的应用程序,大大降低了开发、维护和管理的开销。

(2) 面向对象

Java是面向对象的编程语言。面向对象技术较好地适应了当今软件开发过程中新出现的种种传统面向过程语言所不能处理的问题,包括软件开发的规模扩大、升级加快、维护量增大经及开发分工日趋细化、专业化和标准化等,是一种迅速成熟、推广的软件开发方法。面向对象技术的核心是以更接近人类思维的方式建立计算机逻辑模型,它利用类和对象的机制将数据与其上的操作封装在一起,并通过统一的接口与外界交互,使反映现实世界实体的各个类在程序中能够独立、自治、继承;这种方法非常有利于提高程序的可维护性和可重用性,大大提高了开发效率和程序的可管理性,使得面向过程语言难于操纵的大规模软件可以很方便的创建、使用和维护。

(3) 安全稳定

对网络上应用程序的另一个需求是较高的安全可靠性。用户通过网络获取并在本地运行的应用程序必须是可依赖的,不会充当病毒或其他恶意操作的传播者而攻击用户本地的资源;同时它还应该是稳定的,轻易不会产生死机等错误,使得用户乐于使用。

(4) 支持多线程

多线程是当今软件技术的又一重要成果,已成功应用在操作系统、应用开发等多个领域。多程序技术允许同一个程序有两个执行线索,即同时做两件事情,满足了一些复杂软件的需求。Java不但内置多线程功能,而且提供语言级的多线程支持,即定义了一些用于建立、管理多线程的类和方法,使得开发具有多线程功能的程序变得简单、容易和有效。

(5) 简单易学

如前所述,衍生自C++的Java语言,出于安全稳定性的考虑,去除了C++中不容不得易理解和掌握的部分,如最典型的指针操作等,降低了学习的难度;同时 Java还有一个特点就是它的基本语法部分与C语言几乎一模一样。这样,无论是学过Java再学C,还是已经掌握了C语言再学Java,都会感到易于入门。

3.3 开发工具选择

J2ME是Sun公司针对嵌入式、消费类电子产品推出的开发平台,与J2SE和J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的JSR(Java Specification Request)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,以确保兼容性。如MIDP2.0规范就是在JSR118中制定的。可能接触过J2ME的开发者会觉得说J2ME是一系列的规范不准确,因为在开发中经常会用到CLDC(Connected Limited Devices Configuration)、MIDP(Mobile Information Devices Profile)等内容。其实这并不矛盾,因为这些就是在相关规范中制定的。

Sun公司将J2ME定义为“一种以广泛的消费性产品为目标的、高度优化的 Java 运行时环境”。自从 1999 年 6 月在 Java One Developer Conference 上发布之后,J2ME 进入了小型设备开发的行列。与以前 Sun 公司推出的J2EE (Java 2 Enterprise Edition)、J2SE (Java 2 Standard Edition)规范相比,J2ME 不是一个单独的技术规范,而是一系列技术规范的总称。这些规范定义了 Java 技术在资源有限制的设备中的表现形式。J2ME 主要适用于小型嵌入式设备,这些设备与PC或是服务器设备相比没有统一的硬件标准、外观与操作方式,其功用也是千差万别。但是J2ME 在适用于这些设备的同时也保留了 Java 的传统特性,即任何时间和任何地点的代码具有可移植性、部署灵活性、安全的网络传输性,以及代码稳定性。正是因为如此,开发人员才可以借助J2ME的力量使编写的程序能够运行在其他型号或厂商的设备上。

3.4 系统软硬件要求

 

软件要求

操作系统:Windows 97/2000、Windows XP、Vista

4 系统总体设计

4.1 游戏背景和规则

此游戏最初设计者原意是为了让玩家摆脱繁重的压力而设计的,现在游戏演变成了锻炼玩家反应力和协调力的一类益智游戏,当然它的本意还是没有改变的,游戏中玩家只要控制锤子在不断出现的猪头上敲下去,敲到的话得一分,当然随着得分数的增加游戏速度也会相应的增加,这样就使得玩家要集中精神来完成游戏。

4.2 游戏需求

用鼠标操作棒槌来敲打随机出现的猪头,当出现猪头时点击鼠标右键则敲打下去,若猪头在点击之前未消失则算得到十分,若消失则不算分数,系统会在游戏时间内记录所敲打的猪头数

游戏界面需求:良好的用户界面,有关图像显示和分数显示。为区分猪头和背景,所以用黑色来充当背景,用白线分隔成三个区域。

游戏形状需求:良好的游戏道具设计,绘制一种可爱的卡通猪头造型和能够实现动作敲和提的棒槌造型。

鼠标处理事件:控制棒槌在游戏界面中移动,当猪头出现时点击右键敲下棒槌,被敲到的猪头消失。 显示需求:棒槌敲的猪头消失,而其他的几个敲击点上不停的出现猪头,每个猪头都会停留几秒钟,当分数越高出现猪头的速度越快。

4.3 游戏流程图

图4-1 游戏主流程图

图4-2 敲打猪头事件处理流程图

图4-3 鼠标事件处理流程图

图4-4 图像变化流程图

4.4 程序类的实现

游戏中共有9个猪头可能出现的位置,用户可以使用鼠标来控制锤子的移动和敲击动作,在此游戏中有两个角色,一个是代表猪头的PigSprite类,一个是代表锤子的HammerSprite类,他们是继承SuperSprite类而来的,当然,还有一个类是不可或缺的,那是游戏的主类HitPigHead。

游戏是由9个PigSprite类实例和一个HammerSprite类实例构成的,这些必要的类实例建立在游戏主类中的inte方法中,并且在动画循环中转换角色的状态,在Pinte方法中绘制角色本身。

在游戏主类中,另一个应该关注的焦点是鼠标事件处理。首先是挥动出自的动作,这是由锤子Sprite的updateState方法实现的,当然锤子角色的paintSprite方法中也要动点手脚,要求绘制的currentImage是起始值是在锤子Sprite 构造方法中被设为hammer1.猪头角色的hit方法是用来测试锤子是否击中猪头的。

4.5 游戏界面设计

游戏界面作为人机交互的桥梁,其作用无可取代。游戏玩家对游戏的直观印象,一个来自操作,另一个就是画面。游戏界面本身就是画面的一部分,其地位举足轻重。下图4-5就是游戏中经常所用到的一些界面。

图4-5 游戏界面

一、启动界面:指的是玩家双击桌面快捷图标后,从程序启动到进入游戏主界面时的画面。

二、主菜单界面:集游戏中主要功能大成的界面,类似于文章写作中的提纲。在游戏中是按esc键呼出,显示在屏幕中间。

三、选项界面:该界面为游戏、操作、声音的设置界面。

4.6 处理游戏结束

现在当“结束游戏”按钮被单击时应该进行的处理,当用户单击“结束游戏”按钮会出现一个确认的对话按钮,次对话按钮具有modal属性,如果按取消按钮,对话窗口会消失,并且游戏将继续进行,如果是确定按钮,那么游戏将会回到开头画面并等待下一次游戏的进行。

5 详细设计

5.1 运用AWT组件

使用AWT组件的Panel,它是可以用来放置其他的AWT组件的 “容器”。Panel有一个很重要的特色是它拥有独立的坐标系统和LayoutManager。所以可以将Panel和LayoutManager相结合起来。如图5-1所示。

图5-1 嵌套的Panel

图5-1使用的是“套嵌的Panel”(在Panel中放入Panel),并且替每一个Panel指定使用个别的LayoutManager.Panel位于java.awt中,它是Container类的子类,其预设是使用FlowLayout版面的配置。根据此原理可以设计一个针对HitPigHead.java的一个可用来装载Applet程序的类。然后对此类程序进行编译,再在HitPigHead.java中HitPigHead类的init()方法的最下方加入下行:

G=new GameFrame(“棒打猪头”, AppletWidth, AppletHeight, this);

当然,在此类中一开头的声明数据成员中也要加上:

GameFrame G;

将GameFrame.java编译之后的类文件(*.class)和HitPigHead.java位于同一个工作目录下,否则编译器将找不到GameFrame类,然后在Applet程序加载后,将会出现一个java窗口的程序。这个java窗口是与Applet程序同生同灭的,所以如果要关闭此窗口就必须关闭浏览器停止Applet程序,如此java窗口才会跟着一起关闭。所以要在GameFrame加上菜单,负责处理当菜单项按下时所触发的事件,另外也要加入处理关闭窗口的事件处理方法。

5.2 “开始游戏”与“结束游戏”

此游戏中ATW组件是置入Applet的上下方的,是使用BorderLayout,并且在上方(NORTH)与下方(SOUTH)的位置各置一个Panel组件,上方的Panel组件中又置两个Label组件,分别用来显示游戏进行时间与得分;而下方的Panel组件中的两个Button组件,负责开始与结束游戏的执行。如图5-2。

图5-2 AWT组件置入Applet的上方与下方

游戏一开始会先出现开头画面,必须单击Applet下方的“开始游戏”按钮才能开始,基本上每一个AWT组件都可以设定有效状态,一个无效的AWT组件无法为使用者所操作,使用setEnable()方法来设定组件的有效状态:

Public void setEnabled(boolean b)

也就是说当“开始游戏”按钮被单击时,程序会将布尔值StartGame设为false,并且设定“开始游戏”按钮为无效,而“结束游戏”按钮为有效。其中关键在于布尔值StartGmae的设定,当为ture时即未按下“开始游戏”按钮,动画循环中所更改的是开头画面,当为false时即按下“开始游戏”按钮便进行更改猪头角色的动作和游戏时间的计算。

当“结束游戏”按钮被单击时对应动作为停止线程(将newThread设为null),这将使动画循环停止动作。下一步会出现一个确认的对话窗口,此对话窗口具有modal属性,如果单击“取消”按钮,对话窗口会消失并且游戏继续进行,如果单击“确定”按钮,那么游戏将会回到开头画面并等待下一次游戏进行。实现此对话框的是源程序代码中的CloseDialog类,此类继承了Dialog类,在建立对话窗口时指定了拥有者。

5.3 游戏难度设定和网页特效

此设计是希望随着游戏时间的进行而加快猪头显示和消失的速度,控制猪头显示和消失的程序代码在PigSprite类的updateState()函数中。变量show和hide是控制猪头显示和消失几率的关键,通过改变这两个变量来改变猪头出现和消失的速度。此游戏分为50级,每5秒难度增加一级。

网页特效有很多形式,基本上以利用JavaScript和VBScript语言为目前主流,此设计是用JavaScript语言结合Html的标签来美化Applet显示区域以外的范围。

5.4 声音的使用

Applet程序支持一种体积相对小的声音格式——au格式,此格式支持单声(mono),采样频率为8000kHz,此程序使用Applet类的一个方法来取得声音文件:

Public AudioClip getAudioClip(URL url,String name)

此文件存放在HTML文件的目录中建立一个专门存放声音文件的目录,然后采用一种调用方法来加载声音文件。被下载的声音会以AudioClip的形式存在,然后用三个AudioClip的方法成员“播放声音”,“循环播放声音”,“停止播放声音”在Applet中播放声音。

5.5 程序流程图

图5-3 程序流程图

5.6 联机游戏的随想

常见的联机游戏模式有两种:

1. 轮流型

有一些游戏本身的玩法是属于轮流型的,像麻将,接龙等等,玩家是依某种顺序轮流的对游戏做出响应,然后等待其他玩家做相同的事情,其示意如图5-4。

图5-4 轮流型联机游戏主从示意图

2. 随机型

轮流型并不适用于所有游戏,如果玩家想玩如棒打猪头这种游戏,轮流型的方式就不适用了,所以要采用随机型。某一方的玩家将本身的状态传给服务器程序,然后由服务器来更新另一方玩家的状态,如图5-5所示。

图5-5 随机型多人联机游戏示意图

6 结束语

在做学年设计以前,我对Java游戏开发只是停留在理论知识的水平上,是“纸上谈兵”,缺乏实际的软件开发经验。这次通过做毕业设计,我完成了棒打猪头的软件开发任务。在整个开发过程中遇到了很多问题,如图片的装载和变形、屏幕太闪烁的问题。但最终都被我一一解决,对其中比较主要的几点体会总结如下。

第一,为了熟悉小游戏的相关运作,我经常在电脑和游戏机上玩类似的小游戏,慢慢去发现它所有的功能,然后再思考和查阅资料进行分析,经过逐步的设计与反复的修改论证,才完成了整个游戏的开发。

第二,完成了从“小而全”,到“全而精”的转变。设计过程中,经常会遇到困难,我学会通过反复思考和测试,然后找出自己的错误并加以改正,再进行下一个步骤。这个程序就是在这样反复过程序中一点一点的完成的。完成之后再来优化整个程序。

第三,作是一个不断学习新鲜事物的过程,从设计初的不懂到最后能够顺利完成,我体会到在实践中学习的重要性,这对于将来我走上工作岗位具有重要意义。

第四,通过毕业设计使我对Java这门课程有了一定的了解,也对我今后的就业之路打下了一定的基础。

经过一个月的不断努力,学年设计内容已经基本上完成了。回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的软件,丰富了自己的实践技能,扩展了本专业的知识面,使我受益非浅,同时也体验到了搞软件开发的困难度。在这次设计的同时,我又从中学到了许多东西。但由于我对

这样的软件开发还只是一个开始,了解的不多,这其中或许还有很多的不足,有些模块做得不是很好,有些功能还不能够完全的实现,如不能把要装载的方块提前显示出来。因此做得不是很好,界面的设计及整体的布局还比较简单,没有突出特色出来,这也可能是我这个系统的不足之处。

总的来说,我自认为还是比较成功的,这也是我在大学三年来完成的一个比较全面的实际例子。在这次一个月的努力中,我查阅了大量的资料,对Java有了一点初步的认识,对于软件工程这些辅助性的教材也巩固了不少,为我这次的毕业设计提供了很大的帮助,锻炼了我的能力,也为我的大学生活划上了一个圆满的句号。

参考文献:

[1] 荣钦.Java 2 游戏设计[M].清华大学出版社. 2006. 160-200.

[2] 潘晓雷.Java 2入门经[M]. 机械工业出版社. 2008.133-190.

[3] 朱福喜. Java 程序设计技巧与开发实例[M]. 人民邮电出版社. 2009. 103-140.

[4] 齐治昌,谭庆平,宁洪. 软件工程[M]. 高等教育出版社. 1997. 143-203.

[5] 印旻. Java语言与面向对象程序设计[M]. 清华大学出版社. 2000. 144-200.

滨江学院

运筹学课程论文

题 目 棒打猪头游戏设计

院 系专 业学生姓名 倪 健

学 号指导教师职 称 讲 师

二O一一年六月二日

目 录

摘要··················································································1 关键字···············································································1 1 引言················································································1 2 游戏类型·········································································1

2.1 角色扮演类·····································································1

2.1.1 RPG游戏的发展史························································1

2.1.2 AD&D··································································1

2.1.3 RPG游戏架构····························································2

2.1.4 代表性游戏·····························································3

2.2 动作类·········································································3

2.2.1 动作类游戏的发民史······················································3

2.2.2 动作游戏的类型··························································3

2.2.3 动作游戏的架构··························································4

2.3 动作角色扮演···································································5

2.3.1 动作角色扮演的发展······················································5

2.3.2动作角色扮演游戏的技求··················································5

2.3.3动作角色扮演游戏的架构··················································5

2.4 冒险类·········································································6

2.4.1冒险类游戏的发展························································6

2.4.2冒陡类游戏的特点························································7

2.4.3冒陡类游戏的架构························································7

2.5 策略类·········································································7

2.5.1引策略类游戏的发展······················································7

2.5.2 策略类游戏的特色························································8

2.5.3策略类游戏的架构························································8

2.6 模拟类·········································································9

2.6.1 模拟类游戏的发展························································9

2.6.2 模拟类游戏的特色························································9

2.6.3 模拟类游戏的架构························································9

2.7 动作类·········································································10

2.7.1运动类游戏的发展························································10

2.7.2运动类游戏的特色························································10

2.7.3 运动类游戏的架构························································10

2.8 益智类·········································································11

2.8.1益智类游戏的发展························································11

2.8.2益智类游戏的特色························································11

2.8.3益智类游戏的构架························································11 3 系统开发工具及环境····························································12

3.1 程序设计语言选择·······························································12

3.2 Java简介·······································································12

3.3 开发工具选择···································································13

3.4 系统软硬件要求·································································13 4 系统总体设计···································································14

4.1 游戏背景和规则·································································14

4.2 游戏需求·······································································14

4.3 游戏流程图·····································································15

4.4 程序类的实现···································································17

4.5 游戏界面设计···································································17

4.6 处理游戏结束···································································18 5 详细设计········································································18

5.1 运用AWT组件··································································18

5.2 “开始游戏”与“结束游戏” ·····················································19

5.3 游戏难度设定和网页特效·························································19

5.4 声音的使用·····································································20

5.5 程序流程图·····································································20

5.6 联机游戏的随想·································································20 6结束语··········································································21 参考文献···········································································22 ABSTRACT········································································23 Keywords···········································································23

棒打猪头游戏设计

倪健

南京信息工程大学滨江学院信息工程专业,南京,210044

摘要:本文使用Java系统开发了一个类似敲地鼠的益智小游戏,在此游戏中玩家用鼠标控制棒槌来敲打不断随机出现的猪头,在结束游戏时系统会统计在游戏时间内玩家所消灭的猪头数。在游戏过程中玩家可以锻炼自己的反映能力和眼手协调度,在游戏过程中身心都能得到发展。

关键字:游戏;Java;敲地鼠

1 引言

J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是电子设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。

随着电脑的日益普及、Java功能在移动各种电子设备上的实现,Java应用程序产生的一系列服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款休闲益智游戏程序——棒打猪头。本课题将老少皆宜的经典作品移植到电脑上来,为当前流行的硬件平台提供了应用软件。

2 游戏类型

2.1 角色扮演类

角色扮演的游戏,又称为 RPG(Role Playing Games)类型游戏,以现今的游戏类型来说,虽然称不上是最多的,不过可以确信这一种类型的游戏玩法是目前最流行的。但是有许多人对于RPG游戏的类型都只能一知半解。

2.1.1 RPG游戏的发展史

最初的角色扮演游戏是在纸上进行的,而纸上角色扮演的起源来自纸上的战略游戏。事实上,在很久以前,欧洲和美国的许多人都非常热衷于玩纸上的战略游戏。所谓的纸上战略游戏,其玩法就是参与游戏的玩家在纸上画出一个特定的地图,而在地图上利用各种抽象的纸片,符号或者是以一般的小塑料块来玩战术与战略的过程。

2.1.2 AD&D

AD&D是一个非常新的名词,或许会有许多人问什么是AD&D,AD&D有代表什么意义。其实AD&D的最前身就是采用“龙与地下城”的架构。“龙与地下城” 是以剑与魔法的奇幻世界为主要背景的桌上角 1

色扮演游戏(TRPG)规则系统,通常称为D&D(Dungeons & Dragons)目前已经出版到第三版。而最新的版本因为在进行游戏的时候,它主要会使用到二十面骰子,所以称为d20系统。

AD&D的系统则是厂商推出新版本后,将其改名为 Advanced D&D,而之后出现的第三版本,虽然又改名回原来的D&D,可是未来还是会以AD&D来命名,不过这应该只会用来指“旧版”游戏版本的意思。 基本上,几乎可以说“龙与地下城”创造了RPG这种游戏类型。“龙与地下城”的第一版出版于1973年,它是由纸上战棋游戏转化而来的,而当时这种纸上战棋游戏还未有RPG的成分存在,而在“龙与地下城”所推出的初版获得相当大的成功之后,它也带起了RPG的发展。

在改版之后,“龙与地下城”便移植到计算机游戏上,并且掀起了“金盒子系列”的RPG游戏热潮。近年来的“柏德之门”、“冰风谷”等系列游戏也采用了“龙与地下城”的规则系统。另一方面,“龙与地下城”在80年代初期就被引进到日本,所以“龙与地下城”的规则系统不论是对日本的电玩或奇幻文学界,甚至以日本自行开发的游戏系统来说,它都造成了相当深远的影响。

事实上,在许多今日盛行的网络游戏中,还是可以看到“龙与地下城”的影子。例如风靡全球的“无尽的任务”(Ever Quest)游戏中,它可以说是将“龙与地下城”的精神加以“具象化”。而国内盛行的网络游戏“天堂”更是参照了“龙与地下城”第一版的早期规则。

AD&D创造出RPG的游戏基础架构,而他也影响到之后的RPG发展方向。不管现在的RPG游戏变化有多复杂,他还是脱离不了AD&D的系统规则。

2.1.3 RPG游戏架构

以RPG的游戏架构来说,它是由许多游戏玩法机制所综合而成的。单纯以一个简单的场景来说,当操作的人物在路上行走的时候,可能会不确定地遇上敌人的攻击,或捡拾到装备宝物,或者是触发一些特定的事件等,这些都必须经过企划人员的深思熟虑设计。关于RPG的游戏做法,或许用户会问:“那要怎么样才能让玩家在游戏里找寻到乐趣呢?”其实不管所设计出来的RPG游戏有多复杂或者是有多困难,它都不外乎几项基本的原则,如下所示。

人物的描写:RPG游戏最主要的就是强调人物的属性描写与它的背景故事表现,以达到角色扮演的目的。简单地说,RPG游戏就是要让玩家能够感觉到游戏中的人物就像是自己在扮演一样。

宝物的收集:RPG游戏的另一项较为有利的原则,就是宝物的收集。不管是装备或者是宝物,甚至于如同“太空战士” (FINA FANTASY)游戏系列中的“召唤兽”机制,这些都可能成为玩家会想要继续玩下去的理由。

剧情的事件:RPG游戏的主要轴心就是它所呈现的故事剧情内容,这种故事剧情能将角色扮演的成分提升至最高,强调角色在故事里存在的必要。

华丽的画面:为了提高RPG的游戏质量水平,华丽的战斗画面是不能忽略的重点,因为它常常会使得玩家们对游戏爱不释手,就如同“太空战士”系列一般,它的3D真实战斗画面深深地吸引着玩家,而且让玩家们成为它忠实的FANS。

职业的特色:这是RPG游戏类型较为成功的游戏机制,所有的人物都有自己独特的个性,再加上本身所属的职业,让角色的属性更突显出来,如勇士、魔法师、僧侣等,每一种角色又可以与其他的角色能力作互补,这项原则更加强了RPG游戏的质量与内容。

2

以RPG的游戏来说,相信通过以上的几项原则,可以使用户很轻易地了解到RPG游戏的重点因素。接下来看看几个足以代表PRG类型的游戏。

2.1.4 代表性游戏

以单纯的RPG游戏来说,如同史克成尔公司(SQUARE)出品的“太空战士”系列(FINA FANTASY,简称 FF),它就是一个很明显的例子;以 AD&D系统来说,如同“柏德之门”(Baldur's Gate)它也是一个相当成功的例子。柏德之门以 AD&D系统作为游戏的核心,成功地将原本是纸上的RPG游戏系统带进电子游戏系统中。

RPG游戏从纸上慢慢地移植到电子游戏平台的速度不是很快,经过不断地修改角色扮演的游戏方式,现今不管是在纸上的RPG游戏,还是电子游戏平台上的RPG游戏,始终占有一席不败之地;不管是刚接触RPG游戏的玩家还是资深的老手,就RPG游戏来说,它始终是玩家们的最爱。

2.2 动作类

动作类游戏又称为ACT(Action Game),他可说是游戏界上占有最大市场的游戏类型,只要你是游戏玩家,那么一定不会排斥这种动作类游戏的玩法,因为动作类游戏是所有游戏类别最基本的游戏玩法模式。从近年来的主机平台功能的升级,动作类游戏在玩法上变的很复杂,内容更加丰富,它带给游戏玩家的那一份刺激感是我们不可否认的。

2.2.1 动作类游戏的发民史

动作类游戏可以说是所有游戏类型中最为单纯的,所有的游戏类型都是从动作类游戏的变形演化而来的。在早期的游戏产业里,游戏平台只能支持低位的成像处理,因而平台不能作非常复杂的运算,所以动作游戏就在这个时候诞生了,如同小时候玩的“小蜜峰”游戏,这类的游戏不须要花费太多的心思与时间,即可让游戏顺利地进行下去。到接下来任天堂红白机上的“超级玛丽欧”游戏,它将动作游戏的指标带至顶峰,当时多少人为了破“超级玛丽欧”的游戏,而不分昼夜、无时无刻不去玩它,更夸张的是竟然有人可以练到破除“超级玛丽欧”的所有关卡只要花上三分钟的时间。诸如此类,动作游戏所带来的热潮是从以前到现在永远都不会退烧的。

2.2.2 动作游戏的类型

2D动作:2D动作类以2D平面的表现方式来呈现游戏中的画面。在画面中, 玩家必须躲过所有的障碍物与攻打敌人为主要轴心,并且在游戏中寻求特定的目的来破除关卡。

3D动作:单纯的3D动作游戏与2D的动作游戏玩法大致相同,不同的是3D动作游戏的画面讲求的是3D立体真实感而已。

射击类:射击类的动作游戏可以利用2D平面或者是3D立体的画面来呈现,其玩法大都是以飞机射击类为主,其强调的是画面中的枪林弹雨所带来的刺激感。

格斗类:格斗游戏发展时间较单纯的动作游戏晚,它是从单纯的动作游戏演变而来的。从红白机任天堂的“功夫”来看,它就是属于非常单纯的格斗游戏,只要在一个场景中,一个由玩家所操作的主角, 3

一个由计算机所控制的敌人, 形成了一种你打我、我打你的游戏机制。格斗类游戏一直发展到现在,它又加入了剧情、连续技与多人格斗的游戏机制,这些机制让格斗游戏的内容更加丰富有趣。

第一人称射击类:第一人称的射击游戏可说是动作游戏类型发展过程中最晚的一种游戏形态,如同以前在计算机PC上的“德军总部”,当时它发挥了超高的3D显像技术,让多少人叹为观止,尔后便陆陆续续地出现了许多更为精致、更有内容的第一人称射击游戏,如同“战栗时空”(Counter Strike,简称 CS)。

其他:除了上述的各种类型的动作游戏之外,还有一些热门的动作游戏机制,如大型机平台的跳舞游戏机制,它能带动玩家做更刺激的动作行为。当时将跳舞的机制呈现在游戏中,造成一股玩跳舞机的热潮,因为这种热潮的影响,它又渐渐被带入到电视主机与计算机平台上。在了解了动作游戏的类型之后,接下来再深入探讨一下动作游戏的架构设计。

2.2.3 动作游戏的架构

动作游戏的架构是所有游戏中最为简单的一种,先以一个简单的流程图来说明动作游戏是如何来进行的,如图2-1所示。

图2-1游戏流程图

在图2-1中看到,游戏是由一个循环组成的,在游戏还未结束之前,游戏一直以环绕着循环的原则执行。而在循环中,游戏就必须要处理各种事件因子,这些事件因子用来处理游戏中所发生的每一件事情,如玩家操控飞机、飞机的子弹发射、敌机的飞行控制等,其过程原则不外乎下列三项。游戏开始,游戏中的处理,游戏结束。

其实拿RPG游戏与动作游戏来比较,动作游戏显得单纯了许多,而故事剧情也比PRG游戏短。所以,为了让动作游戏更加好玩,就必须在玩家们玩的过程中下很多功夫。通常,动作游戏的流程速度是非常快且刺激的,而PRG游戏主要的成分是在讲故事,所以它的流程速度可能没有动作游戏来的快,不过RPG游戏的内容却远远大于动作游戏。既然这两种游戏类别有着不同的优点,那何不将这两种游戏的类

4

型合而为一呢?是的,在游戏的世界里,就创造出了将这两种游戏机制的优点合而为一的类型,那就是“动作角色扮演”游戏。

2.3 动作角色扮演

“动作角色扮演”(Action Role Playing Games,ARPG)它所发展的时间较 RPG游戏与动作游戏还要晚,因为它以动作游戏紧凑的玩法与RPG游戏剧情的流程为主轴,这让玩动作角色扮演游戏的玩家可以玩到动作游戏的刺激感与RPG游戏的角色扮演机制,所以它又让游戏产业再度掀起一股独特的热潮。

2.3.1 动作角色扮演的发展

以动作角色扮演来说,最早带起这股热潮的应该算是计算机上的“暗黑破坏神”(Diablo)与电视游戏主机上的“萨尔达传说”(Legend of Zelda),它们打败了当时很单纯的RPG故事剧情叙述与单纯的动作游戏,以RPG游戏故事为轴心,再以动作游戏的表现方式,让玩家可以在游戏中看到整个角色扮演的故事情节发展与直觉式的打斗方式。在未来的几年里,动作角色扮演的游戏表现方式,足以占所有游戏产业的一大半。

2.3.2 动作角色扮演游戏的技求

以动作角色扮演的技术来看,它是所有的游戏类别中包含最多的。在设计一套动作角色扮演游戏的时候,设计者就必须要考虑得非常详细,而程序设汁者又要将动作游戏与RPG游戏这两种游戏机制合并成另一种游戏玩法。简单地说,它就如同在做两套游戏一样,一种是动作游戏的角色控制,另一种是故事剧情的流程运作,其花费的精力与时间是相当多的。建议如果要做一套动作角色扮演游戏的话,就必须很精确地估算开发的周期、流程的控制,以及所花费的人力与金钱,不然这会很容易让游戏胎死腹中的。

接下来介绍一下开发一套动作角色扮演的游戏需要哪些基本技术。

故事剧情架构:动作角色扮演的故事剧情其实与RPG游戏是相同的,所以必须撰写一些可以引导所设计的人物故事背景的交待。

人物特色表现:同上述所讲,人物的特色与RPG游戏设计的方式是相同的。

场景对象配置:在场景与对象的配置手法上要比单纯的RPG游戏还要仔细,因为在场景中,不只是单纯的玩家所操控的对象在移动,它还包含怪物、NPC人物的移动,如果分配得不好,那么就有可能造成玩家根本打不到怪物或拿不到宝物的现象发生。

物体动作设计:动作RPG主要的操作模式就是玩家所操作的主角去做任何一件可以做的事,如打敌人或拿宝物等行为。游戏设计者必须去编列所有物体的动作行为,如此一来,才能够让游戏更为生动。

在了解了动作RPG游戏的有关技术之后,接下来介绍一下动作RPG游戏的基本架构。

2.3.3 动作角色扮演游戏的架构

其实,动作角色扮演游戏的主要架构很简单,就是将动作游戏的架构与RPG游戏的架构合并成一种而已,从图2-2中可以简单地看出动作角色扮演游戏的基本架构。

5

图2-2 动作角色扮演游戏的基本架构

可以从图2-2中看到,RPG游戏的故事剧情包含着动作游戏的人物行为,而人物行为又包含着杀敌人、取宝物等基本的事件。如此一来,让动作RPG游戏更显得真实与生动。

从“暗黑破坏神”发售以后,它改变了游戏产业的视觉热潮,之后更有许多游戏仿照“暗黑破坏神”的游戏玩法模式。在近几年来,动作RPG的游戏仿佛已经席卷了整个游戏市场,特别是它又加入了网络联机的功能,这让玩家不只可以在单机平台上玩,而且它更能够让玩家呼朋引伴在游戏中大肆杀敌。越来越多的玩家接受它的游戏机制,也有越来越多的玩家在设计不同故事剧情的动作RPG游戏。而动作RPG游戏的刺激感与RPG游戏的曲折故事发展,所带来的丰富性与娱乐性,远远超过单纯的动作游戏或RPG游戏。

2.4 冒险类

说冒险类游戏(Adventure Game,AVG)为动作类游戏,其实在很多游戏类型当中,它们都有许多共通点,惟一不同的是它们只有一些特殊条件不太相同而已。就冒险类游戏来看,它有角色扮演游戏类型的人物特色,却没有角色扮演游戏类型的人物升级系统。简单地说,在冒险类游戏中可能会非常强调人物故事剧情的进行,可是人物本身的等级强弱却不会是游戏中的重点。

2.4.1 冒险类游戏的发展

冒险类游戏的内容含有相当多的解谜与冒险成分,它没有RPG角色扮演游戏的升级系统。换句话说,主角的属性通常是固定的,其类型本身最主要的目的是要让玩家在游戏中不断地思考,来获得解决各种问题的答案,其发展最经典的游戏应该属于日本“卡普空”(Capcom)公司所发行的“恶灵古堡”(Biohazard)系列游戏与 Eidos公司所发行的“古墓奇兵”(TOMB RAIDER)系列游戏,虽然它们的故事内容不尽相同,可是它们都有一个共通点,就是以解谜为游戏的主轴。

到现今游戏的发展中,不难发现冒险类游戏通常以悬疑紧张的故事剧情为游戏的轴心。通常主角会来到一个充满机关的城镇或建筑物里,在这些地方则有着不可告人的秘密或宝藏,玩家必须突破各种机关或关卡,来达到游戏中的目的,使得思考与紧凑的剧情让玩家可以乐在其中。

6

2.4.2 冒险类游戏的特点

在制作冒险游戏的时候,可以遵循以下几项特点。

强调人物的刻画:冒险类游戏强调的是说明角色在故事里的存在情况,也就是说,角色的背景需要非常清楚地让玩家们了解,所有在故事剧情里出现的人物都必须有它们存在的合理性与意义。

合理的故事剧情:冒险游戏非常重视故事剧情的发展,它是吸引着玩家继续玩下去的最有利工具,合理又悬疑的剧情让玩家能够很容易地融入游戏当中,让玩家会一直想要看到故事剧情的结果而一直不断地玩下去。

丰富的机关结构:冒险游戏最主要的结构是以各式各样的机关来构成的,具有丰富性与合理性,而且又不会太难破解的机关,让玩家能够乐于其中。而游戏中的机关通常是游戏进行的主要干道,所有的故事剧情都可能在机关的前与后发生,所以机关成了冒险游戏不可或缺的主要结构。

2.4.3 冒险类游戏的架构

其实冒险类游戏不外乎是动作RPG游戏类型的变形,它具有动作RPG游戏类型所没有的特征,虽然缺少了RPG游戏的角色升级系统,却多了解谜冒险的成分,让玩家除了玩到角色扮演的游戏之外,又可以玩另一种不一样的游戏模式。

冒险类的游戏架构其实与RPG游戏类型的架构非常相似,只是冒险类游戏还必须加上大量的合理机关与剧情发展,让玩家感觉到就好像在看一场电影、一本小说一样。冒险类游戏如果再复杂一点,还可在游戏中加入分支的剧情,这样会更加提升冒险类游戏内容的丰富性。

从近几年的冒险游戏看来,其内容的丰富性与美式电影风格的制作手法,已经让冒险类型的游戏成功地打动了玩家的心,在未来的游戏市场具有很大的发展空间。

2.5 策略类

策略类游戏(SLG)也属于让玩家具有思考的一种游戏类别,早期的策略型游戏以战棋为主,如象棋、军棋等,主要是让玩家能够在一场特定的地形之中,运用自己的思路来布置属于自己的棋子,并借以打败对方。以早期的战棋游戏而言,是对方走一步,我们才能走一步,而现今的策略型游戏又加入了实时功能的游戏机制。简单地说,在一个特定的地形中,在做内政、军事的整备,对方也一样是在做相同动作的整备,不会因为我们没有动作,对方也不会有动作,相当符合现今的战略游戏。如果自己不善于各种命令的整备,到那时候只有被对方攻打的份了。

2.5.1 策略类游戏的发展

其实策略型游戏发展得相当早,以象棋游戏而言,它就是一个非常经典的策略型游戏,以自己所属的战棋,依据自己的思路布置战棋来攻打对方,以及防守自己。这是属于较为单纯的策略型游戏,因为它只能以“一次走一卒”的方式来进行游戏,这样不但少了游戏的紧凑性,亦少了一分战争的乐趣。但后来经过不断地改良策略型游戏,也就是在游戏中加入了“实时”的游戏机制,成功地打造出了策略型游戏的另一个天空,如Blizzard公司出的“星海争霸”(StarCraft)最为成功,它以各种不同的种族为单位,而这些不同的各个种族之中又细分出不同能力的角色小单位,让战棋游戏更添加了不少的乐 7

趣。后来微软公司(Microsoft)又出了“帝国时代”(Age of Empires)游戏,征服了整个游戏市场,尔后不管是国内还是国外更以这种游戏机制出了大大小小不同的游戏,可见策略型游戏的力量是我们不可忽视的。

2.5.2 策略类游戏的特色

策略型游戏的最大特色就是多人联机的机制,以早期的战棋游戏来说,可能只能够让两个人来进行游戏,而现今的策略型游戏主要的乐趣就是取决于多人联机的厮杀过程,在游戏中可以结盟亦可以反目成仇,以两个人的力量来灭掉另一个种族;亦可以翻脸不认人,在同盟时期又去杀同盟国;在游戏里可以利用以物克物的方式来攻打对方,对方亦可以以同样的方式来攻打我们。所以策略游戏最大的特色就是如何运用我们的思路来配置战棋兵种以及管理内政或开发。

其实策略类游戏除了战术模式之外,它还包括另一种游戏方式,这种游戏方式就是“经营”。所谓“经营”即是让玩家去管理一种运作系统,如城市、交通、商店等。玩家需要凭着自己的思路经营一种运作系统,像较为有名的经营策略型游戏——美商艺电公司所发行的“仿真城市”系列与“仿真市民”系列。虽然此类游戏有人将它归类在“模拟类”的游戏类型,不过我认为它是玩家必需去经营的一套运作系统,所以将这一类型的游戏归类在“策略型”游戏之中。

策略型游戏还有一种较为人知的游戏模式,那就是“养成”的游戏机制,比如较为经典的“美女梦工厂”系列游戏,它是以供养一个小女孩为主轴的游戏,目的是要小女孩成为游戏中有名有利的人。此类型的游戏在当初刚上市的时候,造成游戏界的一股大轰动,其后有许多相类似的产品出现。

还有一种也属于策略型游戏,那就是谋略类,最具有代表性的游戏就是KOEI公司所出的“三国志”系列游戏,它也偏向经营类,不过此种类型的游戏多了一种可以攻打敌人的游戏机制,游戏整体看起来,就像是古时候的谋略战争。

其实策略类游戏是所有游戏类型中包含最多类型的一种游戏模式,是很容易分辨的。其游戏的模式只要是让玩家花上心思,来达到另外一种目的的游戏,我们都称它是策略型游戏。

2.5.3 策略类游戏的架构

策略型游戏的架构较为简单,以现今的游戏来说,可以分为两大类,分别是“单人剧情类”与“多人联机类”。

单人剧情类:以单人单机为主,其目的是让玩家可以操作自己的战棋,来实现单关的故事剧情。玩家既可以玩丰富的故事剧情,又可以随着自己的意思来布置自己的战棋以攻守计算机的战棋,来完成单关任务。

多人联机类:以多人多机的方式来进行游戏,目的是让游戏中的玩家可以呼朋引伴在游戏中来一场大厮杀,而在没有联机的情况下,玩家也可以与计算机对战,以自己的开发思路来打败对方。

随着网络的蓬勃发展,联机游戏越来越多,以策略型游戏来说,几乎占据大部分的网络游戏市场。策略型游戏可说是近几年里最为热门的游戏机制,其实我已经说了这么多的游戏类别,可是我却都一直还没讲到在线游戏的机制类型。说真的,我不将在线游戏机制另外归类成一种游戏类别,原因是在线游戏的类别脱离不了上述的几种类型,只是在线游戏多了一个网络的游戏机制而已,不同的是游戏中的数据库与玩法比上述所提的几种类型更加庞大。

模拟类游戏(Simulation Game,SIM),顾名思义,就是模仿某一种行为模式的游戏系统,最主要的目的是实现某一种直接行为。通常模拟类的游戏模仿的对象有汽车、机车、船、飞机,甚至宇宙飞船。虽然用户可能买不起汽车或飞机,但能从游戏中感受到汽车奔驰在马路上的快感和飞机翱翔在天空中的自由,这就是模拟类游戏的最主要目的。

2.6.1 模拟类游戏的发展

其实单以模拟类游戏来说,它的由来应该是当时用在模拟飞行机具上的运作系统。当时一台飞行机具的造价都非常高,对于一个不太熟悉飞行机具的驾驶员来说,冒然地让他驾驶一台飞行机具是很危险的。所以科学家就开始研发可以模拟飞行机具的各种物理现象与突发状况,以供飞行员练习,对于让他们直接驾驶飞行器来说,这可以减少掉许多不必要的麻烦,这就是模拟类游戏的原型。

之后,这种仿真系统慢慢地引进到游戏当中,当时玩家的心态就是自己没有办法买到昂贵的驾驶机具,他们也能够在游戏中寻找到驾驶的乐趣。

演变至今,模拟类游戏从飞行的机具,慢慢地衍生到所有的硬件机具上,如汽车、机车等,到现在甚至还能看到模拟云霄飞车、火车及未来机器人的仿真系统。

2.6.2 模拟类游戏的特色

模拟类游戏最大的特色就是模拟机具的真实感与它的刺激感,模拟游戏着重于机具的物理原理与大自然不变的定律,让玩家可以从玩游戏中感受到真实地存活在游戏的虚拟环境中。在现今模拟类游戏还朝向人类的虚拟生活,比如“虚拟现实”(Virtual Reality,VR),它可以模拟出人类生活的周遭环境,比如建筑物、花园等。在建筑物还未建造之前,我们可以利用虚拟现实的技术,先造出一系列的建筑物环境,提供给使用者观赏。

其实模拟类游戏的最大特色就是可以让使用者或玩家在没有接触真实的硬件机具设备之前,可以很客易地感受到这些机具设备所带来的乐趣。

2.6.3 模拟类游戏的架构

仿真类游戏的架构较重视物体的自然物理反应,简单地说,一颗铅球由半空中落下,它并不会像羽毛一样,还会随着风飘动。一个物体的移动,如同车子的移动,它必须符合物理的原理才可执行,如违反物理的原理就会让玩家感到无所适从。所以在制作模拟类游戏的时候,一套成功的模拟类游戏就要包含许多科学的原理,如风阻、摩擦力等,这样的模拟游戏才会更加吸引人。

模拟类游戏具有科学的表现,其游戏的内容有着许许多多的数学及物理的运算,如果没有,那就是一点都不符合常理,玩家在玩此类游戏的时候,便会找不到它的刺激感,如赛车游戏。以现今模拟类型的游戏来看,它具有固定玩家市场,许多人喜欢车子,可是又买不起真实的车子或者是不能在真实的生活中寻求到赛车的乐趣,所以只能在模拟游戏中去寻找,就如同接下来要谈的运动类游戏一样。

运动类游戏(Sports Game,SPT)与模拟类游戏有异曲同工之处,运动类游戏也必须要符合大自然的物理原理,不过,模拟类游戏较注重机具类型,而运动类游戏就比较注重人体活动的行为。什么是人体活动的行为呢?简单地说,只要是具备重复性动作的活动都可视为人体活动的行为,亦称为运动,而运动类游戏的目的就是用来达成这种行为。

2.7.1 运动类游戏的发展

以早期的运动类游戏来看,运动类游戏仿佛只是为喜好运动而不能亲自去参与的人制作出来的游戏,而后来真实的运动也有越来越多的人喜欢,导致运动类游戏大幅增加,从篮球运动、足球运动,甚至高尔夫球运动,都慢慢地被带游戏当中。像后来的世界奥运的各种比赛项目也被带进游戏当中,这让运动类游戏在游戏世界里占有一席之地。

其实运动类游戏也让玩家有着另外一种很奇妙的行为,那就是有许多玩家可能会因为支持真实比赛中的某一个队伍,而爱上玩运动类游戏;甚至于为了让支持的队伍打败其他的队伍,不惜日夜地锻炼支持的队伍,来满足心中的不平。

2.7.2运动类游戏的特色

运动类游戏的特色最主要的就是表现某一种类型的运动,在与真实运动比赛相同的环境下,和计算机或朋友打一场属于自己的运动竞赛,足以满足自己或朋友对运动的热爱。

运动类游戏以球类运动占多数,不管是篮球、高尔夫球、还是足球,只要是多人热衷的运动,此类型的运动类游戏的占有率就越高,其主要的特色就是突显出此类运动的刺激性与临场感。

2.7.3 运动类游戏的架构

运动类游戏的架构简单地说,它与动作类游戏的架构大致相同,不同的是运动类游戏着重于特定的运动项目,主要的架构会依据运动的类型来制作。如同网球运动,其人物架构可能是一个玩家操作一至两个人,而足球运动则可能由一个玩家来操作一至多人,所以要制定出运动类型的游戏架构,就必须依照真实运动的类型来定义或规划。

不过,不管是哪一种运动游戏,都可以依据下列两项原则来规划运动类游戏。

确认运动的类型:每一种运动的规则与场上人物的配置大不相同,所以规划某运动游戏之前,必须了解此种运动的完整规则与人物上场时所分配的位置,甚至于赛场上的战术,以供制作计算机人工智能的时候所使用。

突显运动的特质:每一项运动都有它的基本特质,比如篮球运动,它的特质就是在两支队伍攻防当中的临场刺激与紧凑的比赛;而台球运动,它的特质就是注重球的运动方式与撞球的准确度。上述这两者都属于运动类的游戏,不过,玩法却大不相同,所以必须要去突显出运动类游戏本身的特质,才能使玩家更容易接受。

虽然运动类游戏在游戏市场中只占了小小的位置,不过,在真实生活中的运动热潮,足以带动运动类游戏的抬头,比如世界足球赛,在比赛的前、中、后时段里,不知道有多少人为之疯狂,更带来足球运动游戏的无限商机。

益智类游戏(PUZZLE GAME,PUZ)较着重于玩家的思考与逻辑判断,运用玩家的思路完成游戏中的目的。通常玩益智类游戏的玩家都必须要有恒心与耐心,思索着游戏中的问题,再依据自己的判断来执行,目的是突破各项不同的关卡。益智类游戏不会让玩家们死按活按键盘,所以要走的步骤都必须加以思考,在一定的时间内做出正确的判断。

2.8.1 益智类游戏的发展

以最早期的益智类游戏而言,黑白棋与五子棋应该是益智类游戏的最原始玩法,从最早的纸上游戏,慢慢再带到电子游戏中。益智类游戏的发展,应该都是从早期的纸上游戏衍生出来的,我记得小时候的方块游戏,它是由各种不同形状的方块所构成的,目的是要将各个方块拼凑在一个方框内,它有许多种排列组合,就必须依照自己的思路来完成拼凑。以上述的方块游戏,不难看出,电子游戏中“俄罗斯方块”游戏的玩法是不是有些相似的地方呢?再如“宾果”游戏,“宾果”游戏也是利用两个相同的图案来取得方块,等方块全部拿光后,再来看谁的方块比较多,多的人为优胜。 由上述两个例子来看,益智类游戏的始祖都应该是早期的纸上游戏。

到了游戏中后期,益智类游戏开始以博弈为主要的市场,将益智类游戏制作成平日所玩的纸牌、麻将,将原来只有在桌面上的博弈游戏,搬至电子游戏中,发展至今,更有赛马、赛船或赛车等赌博益智游戏的出现。

2.8.2 益智类游戏的特色

益智类游戏的特色就比较单纯,在游戏中它不需要玩家利用快节奏的表现方式来呈现,反而它比较偏向慢条斯理的玩家,其最主要的目的是能让玩家去运用自己的思考逻辑来做出不同的判断。

2.8.3 益智类游戏的构架

介于益智类游戏的机制大多来自早期的纸上游戏,所以在规划益智类游戏的同时,必须去分析了解纸上游戏的玩法规则,并且将它加以变化,简单的说,取纸上游戏的主要架构,再加上自己所创造的游戏玩法和机制,就可以制作出比原先纸上游戏更多变化的益智游戏。

益智类游戏的架构可以归纳以下几点要素:

游戏的规则和玩法:在制作益智游戏之前,必须先去了解游戏的全盘规则以及他的各种玩法。 游戏的衍生和变化:可以将原来纸上游戏转变成另外一种形态来表现,例如此文所介绍的棒打猪头,原来只是确认方格内有无东西,现在可以将它转变成随着时间延长而不断闪现的动画游戏。

独创性的游戏机制:益智类游戏的变化成分原本就不多,所以必须加入其特定游戏的独创性,让益智类游戏的内容更加丰富有趣。

3 系统开发工具及环境

3.1 程序设计语言选择

面向对象是一种认识世界的方法,是一种程序设计方法。面向对象的程序设计吸取了结构化程序设计的先进思想,并把它们同几个支持用户用新方法进行程序设计的有力概念结合在一起。面向对象的观点认为,客观世界是由各种各样的实体,即对象组成的。每种对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用就构成了各种不同的系统,并进而构成整个客观世界。按照这样的思想设计程序,就是面向对象的程序设计。所有面向对象的程序设计语言一般都包含三个概念:封装、多态性和继承性。

C++和Java在面向对象这方面比VB要强,所以我排除了用VB实现的可能性。但是C++为了与C语言兼容,其是包含了些面向过程的成分;Java去除了C++中非面向过程的部分,其程序编写过程就是设计、实现类,定义其属性、行为的过程;还有Java特有的“沙箱”机制是其安全性的保障,同时它去除了C++中易造成的错误指针,增加了自动内存管理等措施,保证了Java程序运行的可靠性。基于这些原因,我选择用Java语言来进行程序实现。

3.2 Java简介

Java是定义位于网络计算的计算机语言,它几乎所有的特点也是围绕着这一中心展开的并为之服务的,这些特点使得Java语言特别适合于用来开发网络上的应用程序;另外,作为一种面世较晚的语言,Java也集中体现和充分利用了若干当代软件技术新成果,如面向对象、多线程等,这些也都在它的特点中有所反映。

(1) 开台无关性

如前所述,Java语言独特的运行机制使得它具有良好的二进制级的可移植性,利用Java,开发人员可以编写出与具体平台无关、普遍适用的应用程序,大大降低了开发、维护和管理的开销。

(2) 面向对象

Java是面向对象的编程语言。面向对象技术较好地适应了当今软件开发过程中新出现的种种传统面向过程语言所不能处理的问题,包括软件开发的规模扩大、升级加快、维护量增大经及开发分工日趋细化、专业化和标准化等,是一种迅速成熟、推广的软件开发方法。面向对象技术的核心是以更接近人类思维的方式建立计算机逻辑模型,它利用类和对象的机制将数据与其上的操作封装在一起,并通过统一的接口与外界交互,使反映现实世界实体的各个类在程序中能够独立、自治、继承;这种方法非常有利于提高程序的可维护性和可重用性,大大提高了开发效率和程序的可管理性,使得面向过程语言难于操纵的大规模软件可以很方便的创建、使用和维护。

(3) 安全稳定

对网络上应用程序的另一个需求是较高的安全可靠性。用户通过网络获取并在本地运行的应用程序必须是可依赖的,不会充当病毒或其他恶意操作的传播者而攻击用户本地的资源;同时它还应该是稳定的,轻易不会产生死机等错误,使得用户乐于使用。

(4) 支持多线程

多线程是当今软件技术的又一重要成果,已成功应用在操作系统、应用开发等多个领域。多程序技术允许同一个程序有两个执行线索,即同时做两件事情,满足了一些复杂软件的需求。Java不但内置多线程功能,而且提供语言级的多线程支持,即定义了一些用于建立、管理多线程的类和方法,使得开发具有多线程功能的程序变得简单、容易和有效。

(5) 简单易学

如前所述,衍生自C++的Java语言,出于安全稳定性的考虑,去除了C++中不容不得易理解和掌握的部分,如最典型的指针操作等,降低了学习的难度;同时 Java还有一个特点就是它的基本语法部分与C语言几乎一模一样。这样,无论是学过Java再学C,还是已经掌握了C语言再学Java,都会感到易于入门。

3.3 开发工具选择

J2ME是Sun公司针对嵌入式、消费类电子产品推出的开发平台,与J2SE和J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的JSR(Java Specification Request)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,以确保兼容性。如MIDP2.0规范就是在JSR118中制定的。可能接触过J2ME的开发者会觉得说J2ME是一系列的规范不准确,因为在开发中经常会用到CLDC(Connected Limited Devices Configuration)、MIDP(Mobile Information Devices Profile)等内容。其实这并不矛盾,因为这些就是在相关规范中制定的。

Sun公司将J2ME定义为“一种以广泛的消费性产品为目标的、高度优化的 Java 运行时环境”。自从 1999 年 6 月在 Java One Developer Conference 上发布之后,J2ME 进入了小型设备开发的行列。与以前 Sun 公司推出的J2EE (Java 2 Enterprise Edition)、J2SE (Java 2 Standard Edition)规范相比,J2ME 不是一个单独的技术规范,而是一系列技术规范的总称。这些规范定义了 Java 技术在资源有限制的设备中的表现形式。J2ME 主要适用于小型嵌入式设备,这些设备与PC或是服务器设备相比没有统一的硬件标准、外观与操作方式,其功用也是千差万别。但是J2ME 在适用于这些设备的同时也保留了 Java 的传统特性,即任何时间和任何地点的代码具有可移植性、部署灵活性、安全的网络传输性,以及代码稳定性。正是因为如此,开发人员才可以借助J2ME的力量使编写的程序能够运行在其他型号或厂商的设备上。

3.4 系统软硬件要求

 

软件要求

操作系统:Windows 97/2000、Windows XP、Vista

4 系统总体设计

4.1 游戏背景和规则

此游戏最初设计者原意是为了让玩家摆脱繁重的压力而设计的,现在游戏演变成了锻炼玩家反应力和协调力的一类益智游戏,当然它的本意还是没有改变的,游戏中玩家只要控制锤子在不断出现的猪头上敲下去,敲到的话得一分,当然随着得分数的增加游戏速度也会相应的增加,这样就使得玩家要集中精神来完成游戏。

4.2 游戏需求

用鼠标操作棒槌来敲打随机出现的猪头,当出现猪头时点击鼠标右键则敲打下去,若猪头在点击之前未消失则算得到十分,若消失则不算分数,系统会在游戏时间内记录所敲打的猪头数

游戏界面需求:良好的用户界面,有关图像显示和分数显示。为区分猪头和背景,所以用黑色来充当背景,用白线分隔成三个区域。

游戏形状需求:良好的游戏道具设计,绘制一种可爱的卡通猪头造型和能够实现动作敲和提的棒槌造型。

鼠标处理事件:控制棒槌在游戏界面中移动,当猪头出现时点击右键敲下棒槌,被敲到的猪头消失。 显示需求:棒槌敲的猪头消失,而其他的几个敲击点上不停的出现猪头,每个猪头都会停留几秒钟,当分数越高出现猪头的速度越快。

4.3 游戏流程图

图4-1 游戏主流程图

图4-2 敲打猪头事件处理流程图

图4-3 鼠标事件处理流程图

图4-4 图像变化流程图

4.4 程序类的实现

游戏中共有9个猪头可能出现的位置,用户可以使用鼠标来控制锤子的移动和敲击动作,在此游戏中有两个角色,一个是代表猪头的PigSprite类,一个是代表锤子的HammerSprite类,他们是继承SuperSprite类而来的,当然,还有一个类是不可或缺的,那是游戏的主类HitPigHead。

游戏是由9个PigSprite类实例和一个HammerSprite类实例构成的,这些必要的类实例建立在游戏主类中的inte方法中,并且在动画循环中转换角色的状态,在Pinte方法中绘制角色本身。

在游戏主类中,另一个应该关注的焦点是鼠标事件处理。首先是挥动出自的动作,这是由锤子Sprite的updateState方法实现的,当然锤子角色的paintSprite方法中也要动点手脚,要求绘制的currentImage是起始值是在锤子Sprite 构造方法中被设为hammer1.猪头角色的hit方法是用来测试锤子是否击中猪头的。

4.5 游戏界面设计

游戏界面作为人机交互的桥梁,其作用无可取代。游戏玩家对游戏的直观印象,一个来自操作,另一个就是画面。游戏界面本身就是画面的一部分,其地位举足轻重。下图4-5就是游戏中经常所用到的一些界面。

图4-5 游戏界面

一、启动界面:指的是玩家双击桌面快捷图标后,从程序启动到进入游戏主界面时的画面。

二、主菜单界面:集游戏中主要功能大成的界面,类似于文章写作中的提纲。在游戏中是按esc键呼出,显示在屏幕中间。

三、选项界面:该界面为游戏、操作、声音的设置界面。

4.6 处理游戏结束

现在当“结束游戏”按钮被单击时应该进行的处理,当用户单击“结束游戏”按钮会出现一个确认的对话按钮,次对话按钮具有modal属性,如果按取消按钮,对话窗口会消失,并且游戏将继续进行,如果是确定按钮,那么游戏将会回到开头画面并等待下一次游戏的进行。

5 详细设计

5.1 运用AWT组件

使用AWT组件的Panel,它是可以用来放置其他的AWT组件的 “容器”。Panel有一个很重要的特色是它拥有独立的坐标系统和LayoutManager。所以可以将Panel和LayoutManager相结合起来。如图5-1所示。

图5-1 嵌套的Panel

图5-1使用的是“套嵌的Panel”(在Panel中放入Panel),并且替每一个Panel指定使用个别的LayoutManager.Panel位于java.awt中,它是Container类的子类,其预设是使用FlowLayout版面的配置。根据此原理可以设计一个针对HitPigHead.java的一个可用来装载Applet程序的类。然后对此类程序进行编译,再在HitPigHead.java中HitPigHead类的init()方法的最下方加入下行:

G=new GameFrame(“棒打猪头”, AppletWidth, AppletHeight, this);

当然,在此类中一开头的声明数据成员中也要加上:

GameFrame G;

将GameFrame.java编译之后的类文件(*.class)和HitPigHead.java位于同一个工作目录下,否则编译器将找不到GameFrame类,然后在Applet程序加载后,将会出现一个java窗口的程序。这个java窗口是与Applet程序同生同灭的,所以如果要关闭此窗口就必须关闭浏览器停止Applet程序,如此java窗口才会跟着一起关闭。所以要在GameFrame加上菜单,负责处理当菜单项按下时所触发的事件,另外也要加入处理关闭窗口的事件处理方法。

5.2 “开始游戏”与“结束游戏”

此游戏中ATW组件是置入Applet的上下方的,是使用BorderLayout,并且在上方(NORTH)与下方(SOUTH)的位置各置一个Panel组件,上方的Panel组件中又置两个Label组件,分别用来显示游戏进行时间与得分;而下方的Panel组件中的两个Button组件,负责开始与结束游戏的执行。如图5-2。

图5-2 AWT组件置入Applet的上方与下方

游戏一开始会先出现开头画面,必须单击Applet下方的“开始游戏”按钮才能开始,基本上每一个AWT组件都可以设定有效状态,一个无效的AWT组件无法为使用者所操作,使用setEnable()方法来设定组件的有效状态:

Public void setEnabled(boolean b)

也就是说当“开始游戏”按钮被单击时,程序会将布尔值StartGame设为false,并且设定“开始游戏”按钮为无效,而“结束游戏”按钮为有效。其中关键在于布尔值StartGmae的设定,当为ture时即未按下“开始游戏”按钮,动画循环中所更改的是开头画面,当为false时即按下“开始游戏”按钮便进行更改猪头角色的动作和游戏时间的计算。

当“结束游戏”按钮被单击时对应动作为停止线程(将newThread设为null),这将使动画循环停止动作。下一步会出现一个确认的对话窗口,此对话窗口具有modal属性,如果单击“取消”按钮,对话窗口会消失并且游戏继续进行,如果单击“确定”按钮,那么游戏将会回到开头画面并等待下一次游戏进行。实现此对话框的是源程序代码中的CloseDialog类,此类继承了Dialog类,在建立对话窗口时指定了拥有者。

5.3 游戏难度设定和网页特效

此设计是希望随着游戏时间的进行而加快猪头显示和消失的速度,控制猪头显示和消失的程序代码在PigSprite类的updateState()函数中。变量show和hide是控制猪头显示和消失几率的关键,通过改变这两个变量来改变猪头出现和消失的速度。此游戏分为50级,每5秒难度增加一级。

网页特效有很多形式,基本上以利用JavaScript和VBScript语言为目前主流,此设计是用JavaScript语言结合Html的标签来美化Applet显示区域以外的范围。

5.4 声音的使用

Applet程序支持一种体积相对小的声音格式——au格式,此格式支持单声(mono),采样频率为8000kHz,此程序使用Applet类的一个方法来取得声音文件:

Public AudioClip getAudioClip(URL url,String name)

此文件存放在HTML文件的目录中建立一个专门存放声音文件的目录,然后采用一种调用方法来加载声音文件。被下载的声音会以AudioClip的形式存在,然后用三个AudioClip的方法成员“播放声音”,“循环播放声音”,“停止播放声音”在Applet中播放声音。

5.5 程序流程图

图5-3 程序流程图

5.6 联机游戏的随想

常见的联机游戏模式有两种:

1. 轮流型

有一些游戏本身的玩法是属于轮流型的,像麻将,接龙等等,玩家是依某种顺序轮流的对游戏做出响应,然后等待其他玩家做相同的事情,其示意如图5-4。

图5-4 轮流型联机游戏主从示意图

2. 随机型

轮流型并不适用于所有游戏,如果玩家想玩如棒打猪头这种游戏,轮流型的方式就不适用了,所以要采用随机型。某一方的玩家将本身的状态传给服务器程序,然后由服务器来更新另一方玩家的状态,如图5-5所示。

图5-5 随机型多人联机游戏示意图

6 结束语

在做学年设计以前,我对Java游戏开发只是停留在理论知识的水平上,是“纸上谈兵”,缺乏实际的软件开发经验。这次通过做毕业设计,我完成了棒打猪头的软件开发任务。在整个开发过程中遇到了很多问题,如图片的装载和变形、屏幕太闪烁的问题。但最终都被我一一解决,对其中比较主要的几点体会总结如下。

第一,为了熟悉小游戏的相关运作,我经常在电脑和游戏机上玩类似的小游戏,慢慢去发现它所有的功能,然后再思考和查阅资料进行分析,经过逐步的设计与反复的修改论证,才完成了整个游戏的开发。

第二,完成了从“小而全”,到“全而精”的转变。设计过程中,经常会遇到困难,我学会通过反复思考和测试,然后找出自己的错误并加以改正,再进行下一个步骤。这个程序就是在这样反复过程序中一点一点的完成的。完成之后再来优化整个程序。

第三,作是一个不断学习新鲜事物的过程,从设计初的不懂到最后能够顺利完成,我体会到在实践中学习的重要性,这对于将来我走上工作岗位具有重要意义。

第四,通过毕业设计使我对Java这门课程有了一定的了解,也对我今后的就业之路打下了一定的基础。

经过一个月的不断努力,学年设计内容已经基本上完成了。回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的软件,丰富了自己的实践技能,扩展了本专业的知识面,使我受益非浅,同时也体验到了搞软件开发的困难度。在这次设计的同时,我又从中学到了许多东西。但由于我对

这样的软件开发还只是一个开始,了解的不多,这其中或许还有很多的不足,有些模块做得不是很好,有些功能还不能够完全的实现,如不能把要装载的方块提前显示出来。因此做得不是很好,界面的设计及整体的布局还比较简单,没有突出特色出来,这也可能是我这个系统的不足之处。

总的来说,我自认为还是比较成功的,这也是我在大学三年来完成的一个比较全面的实际例子。在这次一个月的努力中,我查阅了大量的资料,对Java有了一点初步的认识,对于软件工程这些辅助性的教材也巩固了不少,为我这次的毕业设计提供了很大的帮助,锻炼了我的能力,也为我的大学生活划上了一个圆满的句号。

参考文献:

[1] 荣钦.Java 2 游戏设计[M].清华大学出版社. 2006. 160-200.

[2] 潘晓雷.Java 2入门经[M]. 机械工业出版社. 2008.133-190.

[3] 朱福喜. Java 程序设计技巧与开发实例[M]. 人民邮电出版社. 2009. 103-140.

[4] 齐治昌,谭庆平,宁洪. 软件工程[M]. 高等教育出版社. 1997. 143-203.

[5] 印旻. Java语言与面向对象程序设计[M]. 清华大学出版社. 2000. 144-200.


相关文章

  • 工程管理论文范文
  • 工程项目管理.工程合同管理.工程造价管理.工程经济学.工程估价.施工组织学.房地产开发与经营管理.房地产投资分析与决策.管理学.会计学.统计学.运筹学.财务管理学.管理经济学.组织行为学.建筑制图.工程结构.土木工程技术.建筑设备工程.建筑 ...查看


  • 大学本科毕业论文提纲格式范文
  • 本科毕业论文提纲格式如下文 人类已经进入21世纪,随着社会的发展,现代科学技术与管理技术的提高,生产信息的多元化.复杂化,信息量越来越大,社会的组织化和生产社会化的程度越来越高,因此,对信息的处理和管理工作也就边的很重要.可以说,现代管理的 ...查看


  • 应届大学生个人简历范文
  • 应届大学生个人简历范文 应届大学生个人简历范文 基本情况: 姓 名:*** 政治面貌: 中共党员 专 业:注册会计师专门化 出生日期:1979年10月12日 籍 贯:安徽亳州 毕业院校:***** 学 位:管理学学士 教育情况:大学本科 e ...查看


  • 自我评价范文
  • 以下自我评价范文,仅供物流管理专业应届毕业生制作个人简历时参考 本人周宏,来自湖南长沙,就读于长沙南方职业学院(原南方大学)管理系05级物流管理专业,将于08年6月毕业. 在学校就读的三年时间里,我充分利用学校优越的学习条件和浓郁的学术氛围 ...查看


  • 出纳简历范文
  • 篇一:出纳个人简历范文 出纳个人简历范文 民 族: 汉族 体 重:60公斤 身 高:163厘米 政治面貌: 共青团员 健康状况:健康 婚姻状况: 未婚 出 生 地: 江苏省 生日: 1984-11-21 邮政编码: 证件号码: 联系电话: ...查看


  • 应届毕业生简历范文
  • 应届毕业生简历范文 发布时间:2008年09月07日 来源:应届毕业生求职网 个人简历范文 求职简历范文 教师个人简历范文 英文简历范文 工作简历范文 个人求职简历范文 会计个人简历范文 护士个人简历范文 个人工作简历范文 会计简历范文 应 ...查看


  • 2016个人简历范文参考
  • 2016个人简历范文参考 ##第1篇:金融学专业毕业生个人简历 基本信息 姓名:XXX 性别:男 年龄:22岁 最高学历:大专 工作年限:应届毕业生 政治面貌:共青团员 现居城市:江西 籍贯:江西 婚姻状况:未婚 手机号码:XXXXXXXX ...查看


  • 新课程下教师如何管理好课堂
  • 课堂是一切教学活动的核心和基础,有效的课堂管理是教学顺利实施的基本保障.只有将课堂管理好,才能营造一个良好的教学环境,才能使教师有效地组织教学,取得良好的教学效果.新课程改革后,课堂教学发生了一系列可喜变化.在学习方式上,新课程倡导学生主动 ...查看


  • 财务优秀个人简历范文
  • 财务优秀个人简历范文 来源: www.86jobs.com日期: 2011-7-29 17:04:18 姓名: 张某某 性别: 女 民族: 汉族 出生年月: 1988-01-01 籍贯: 浙江宁波 婚姻状况: 未婚 身高: 178cm 就业 ...查看


热门内容