ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:2.16MB ,
资源ID:9365036      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9365036.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVA开发连连看游戏.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JAVA开发连连看游戏.docx

1、JAVA开发连连看游戏1 引言11 连连看游戏发展1游戏“连连看”顾名思义就是找出相关联的东西,连连看游戏在网上基本是用于小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。在电脑普及发展的今天,网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型,因此不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前3位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。1.1.1

2、桌面连连看游戏发展游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。1.1.2 在线连连看游戏发展随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”、“石头连连看”等。1.1.3 社交连连看游戏发展2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交

3、游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。12 连连看游戏介绍当今社会休闲型游戏越来越得到人们的喜爱,连连看游戏是近几年来网络上非常流行的一种二维休闲游戏,它对电脑配置要求不高,娱乐性强,易于上手,因此吸引了一大批玩家,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。1.2.1 连连看游戏基本规则如果两个相同的图案之间如果能画出一条不多于2折的连线,则消除这两个图案,直到所有的图案全部消除为止,这就是连连看。简单,却不缺乏挑战,道具、关卡、多样的地图,会不断增加游戏的难度。而且连连看需要的不仅仅是眼力,更需要细心。1.2.2 连连

4、看游戏关卡设置为增加连连看游戏的难度,关卡的设置尤为重要,在本次连连看游戏设计中,有2种设置关卡的方式,其一是通过限制时间来增加游戏难度,最终我选择的是时间固定不变,增加图片的个数来增加游戏的难度的方式,从而使游戏更富有挑战性和娱乐性。13 连连看游戏设计目的随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重,所以休息时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓解自己的压力,消除紧张的疲劳状态。连连看游戏是一种有趣休闲的小游戏,不仅能调节精神压力,还能在游戏中锻炼我们的眼力视野,注意力的专心的程度,开发我们的思维能力,同时可以充实自己。本次毕业设计连连看游戏主要使用的J

5、ava语言编写,Java 语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN 公司不断推出新的版本,完善Java 自身的功能,且Java语言具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程,通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,因此它不仅具有更贴近自然的语义,而且有利于软件的维护和继承2。14 连连看游戏解决的主要问题在游戏设计编码过程中,主要需要解决

6、的问题有以下几个:一是如何设置整个游戏的界面并且使界面友好;二是如何控制连连看游戏中随机图片的生成且保证每种图片必须为偶数个;三是图片是否相同且图片之间路径是否畅通的判断;四是点击炸弹和提示怎么消去和提示两个相同的图片,以及炸弹和提示可以使用的次数;五是倒计时和关卡问题。1.5 连连看游戏技术的简要说明Java是一种可以撰写跨平台应用软件的面相对象的程序设计语言,Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广

7、阔前景3。Java技术是一门编程语言,也是一个平台,Java是基于Java虚拟机技术,借助这个东西建立了跨平台的优势。Java技术的重要性就不讲了,从最近流行的一个统计数据上来讲,目前世界上编程语言Java、C、VB、C+依次排名前4位,这排名本身不能说明什么,至少也是工业界对编程语言使用上一个的侧面反映4。Java编程语言与众不同之处在于:Java语言既是编译型的(转换为一种称为Java字节码的中间语言),又是解释型的(JVM对字节码进行解析和运行)5。编译只进行一次,但解释在每次运行程序时都会进行。编译后的字节码采用了一种针对JVM优化过的机器码形式,解释器是JVM的实现。Java平台是一

8、种纯软件的平台,它有三个版本JavaSE、JavaEE、JavaME6。JavaSE(JavaPlatform,StandardEdition)这个版本以前叫做J2SE,后来的版本号从1.4直接跳到5.0,其实也就是1.5,所以就叫成JavaSE 5.0。目前,Java开发人员使用较多的版本就是5.0,当然还有JavaSE6.0这个更新的版本。它允许开发以及部署在桌面、服务器、嵌入式环境以及实时环境中使用的Java应用程序。JavaSE还包含了支持JavaWeb服务开发的类,并且为JavaEE这个版本提供了基础。相对桌面应用程序,Java一直不被看好,但负责桌面GUI开发的类库有:JDK自带的

9、主要是AWT/SWING这个Java原生的类库;也可以使用IBM的SWT/JFace这个第三方的类库。开发工具有:NetBeans(最近已经是6.0final版了,做GUI有使用VB的感觉)和Eclipse(SWT/JFace这个项目其实就是做Eclipse项目时扩展出来的,所以对SWT/JFace支持的也不错)。JavaEE(JavaPlatform,EnterpriseEdition)这个版本以前叫做J2EE,也是Java比较流行的领域,Java企业级的版本。JavaEE下有很多流行的开发框架,像Struts、Spring和Hibernate这种流行的SSH组合等。根据项目大小、应用领域,

10、技术平台选择的面还是很多的,除了JavaEE,还有.Net,LAMP组合(Linux、Apatch、MySql、PHP组合),相对来说比较新Ruby在RubyonRails的框架应用,后两者可能在相对来说比较轻量级的Web领域运用成功的案例比较多,更重量的企业级潜力还有待挖掘。JavaME(JavaPlatform,MicroEdition)这个版本以前叫做J2ME。应用领域就像各种移动设备和嵌入式设备,比如:手机、PDA、电视机顶盒和打印机。目前较为主流的是Android,Android包括:1、高度定制的Linux操作系统内核及智能手机的硬件驱动支持;2、经过Google修改过的Java虚

11、拟机Dalvik,这里的性能比SUN的Hotspot要高,支持大部分的Java核心类库;3、大量智能手机的开发核心类库;4、大量现成的智能手机的应用软件;5、基于Eclipse的开发环境。也是按照网上的说法,JavaEE提供了统一的编程平台,但是不能调用操作系统的资源;而Android下直达操作系统,上直达应用软件,比如:浏览器、日历、地图等。Java的开发工具很多,Eclispe比较流行,各种插件也比较多,当然用起来也很不错;NetBeans现在也是越做越好,介绍这两个IDE主要是因为他们是开源的,当然还有其它工具如JBuilder、IntelliJ、JCreator等。这些IDE各有各的优

12、势劣势,根据不同的开发项目来进行选择7。这次毕业设计我使用的开发工具是MyEclipse,MyEclipse 是一个十分优秀的用于开发Java8, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能9。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。而且,MyEclipse 附带了一个标准的插件集,包括Java

13、开发工具(Java Development Kit,JDK)10。1.6 Java语言的主要特性Java语言是一种适用于网络编程的语言,它的基本结构与C+极为相似,但却简单得多。它集成了其它一些语言的特点和优势,又避开了它们的不足之处。1.6.1简单性Java与C+相比,不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性,而增加了内存空间自动垃圾收集的功能,复杂特性的省略和实用功能的增加使得开发变得简单而可靠。1.6.2跨平台由于它采用先编译成中间码(字节码),然后装载与校验,再解释成不同的机器码来执行,即“Java虚拟机”的思想,“屏蔽”了具体的“平台环境”特性要求,使得只

14、要能支持Java虚拟机,就可运行各种Java程序。1.6.3面向对象面向对象11(O-O)的技术是近年来软件开发中用得最为普遍的程序设计方法,它通过把客观事物进行分类组合、参数封装、用成员变量来描述对象的性质、状态,而用方法(成员函数)来实现其行为和功能。面向对象技术具有继承性、封装性、多态性等众多特点,Java在保留这些优点的基础上,又具有动态联编的特性,更能发挥出面向对象的优势。 1.6.4多线程多线程机制使应用程序能并行执行,Java有一套成熟的同步原语 ,保证了对共享数据的正确操作.通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容

15、易实现网络上实时的交互行为。 1.6.5动态性多线程机制使应用程序能并行执行,Java有一套成熟的同步原语 ,保证了对共享数据的正确操作.通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上实时的交互行为。 1.6.6健壮性Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。Java致力于检查程序在编译和运行时的错误,类型检查帮助检查出许多开发早期出现的错误,Java自已操纵内存减少了内存出错的可能性。这些功能特征大大缩短了开发Java应用程序的周期。1.7 连连看游戏的关键技术12GUI,图形用户界面

16、(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。应用程序为使用数据而在图形用户界面中设置的基本单元,应用程序和数据在窗口内实现一体化,在窗口中,用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。通常在窗口四周设有菜单、图标,数据放在中央。在窗口中,根据各种数据/应用程序的内容设有标题栏,一般放在窗口的最上方,并在其中设有最大化、最小化(隐藏窗口,并非消除数据)、最前面、缩进(仅显示标题栏)等动作按钮,可以简单地对窗口进行操作。GUI的广

17、泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点13。2 连连看游戏需求分析2.1 需求分析整个连连看游戏程序主要有三个阶段,包括了游戏开始,游戏运行和游戏结果三个阶段。游戏程序编译通过开始调试运行,使连连看游戏能够功能实现。这次的毕业设计我负责的主要是根据前台根据前台GUI界面实现对应后台逻辑代码,相对而言是功能的主要实现,使程序正常运行。对于玩家来说,希望游戏简单容易上手,界

18、面美观,富有挑战性,玩家的要求能及时得到满足的情况下,游戏才能得到广大玩家的喜爱,所以在进行游戏设计的过程中要尽量站在玩家的角度思考问题,尽量满足玩家的需求。2.2 可行性分析整个连连看游戏的主要技术是用图形界面GUI实现的,通过编译解释之后,出现一个图形界面。界面右边有游戏开始、刷新、提示、炸弹、倒计时功能等功能。界面的左边是有一个空白的大方块,里面主要用来部署图片,其中最多可以容纳225张小方格,每个小方格容纳一个小图标,通过点击其中的小图标来触发事件,后台的算法主要是对触发事件的相关处理,如果符合一定的游戏规则就会进行相对应的逻辑处理,直到界面上所有的小图片消完为止或者通关成功,或者游戏

19、的时间到游戏被迫结束。2.3 功能需求分析整个连连看游戏的功能描述如下:游戏刚开始运行时,就会初始化游戏进入第一关,将整个游戏区域的主面板看做是一个数组,并划分坐标分为纵向和横向扩展的若干个小方块,而且这些小方块是由53种图案成对的分布在游戏区域的不同位置。玩家需要通过点击相同的两个小图片来进行消除的操作,或者玩家在玩的过程中可以通过刷新功能降低游戏的难度,通过提示、炸弹功能消除相同的2张小图片。直到界面上所有的小图片消完为止或者通关成功,或者游戏的时间到游戏被迫结束14。此外在游戏中有时间的限制,每通过一关,时间会自动清空并且初始化进入到下一关。为了增加游戏的娱乐性,特别增加了声音的功能15

20、,在游戏的每个关卡初始化过程有开始游戏的音效,模仿的是连连看QQ游戏的音效,当鼠标选中图片,图片相消的过程中也都有音效的设置,通过不同的音效加以区分吸引更多的玩家。2.4 性能需求分析2.4.1 硬件环境处理器:AMD1.6GHz或是更高内存:128MB以上硬盘空间:20MB2.4.2 软件环境操作系统:Windows7旗舰版开发环境:Myeclipse2.4.3 环境变量设置环境变量:右击我的电脑-属性-高级-环境变量Path:C:Program FilesJavajdk1.6.0_43bin(Path:系统在任何路径下都可以识别Java命令需要设置的变量)classpath: .(当前路径

21、,也可以不配置)JAVA_HOME:C:Program FilesJavajdk1.6.0_43(JAVA_HOME:java的安装路径,必须配置)3 连连看游戏概要设计3.1 功能设计分析1、通过点击界面右下角的“重新开始”图标,重新开始新游戏。此时程序会通过关卡数据来初始化游戏模型,并通过随机函数排列每张图片并标记其id号和保证图片个数为偶数个,以便通过id号判断图片是否相同。记录每张图片的坐标,用来判断图片之间的路径是否畅通,如果条件满足则可以相互消除16。2 、通过点击面板触发事件,如果玩家选择两张一样的图片,再判断是否可以找到在2折内连通的线,如果存在连通则开始消除格子,如果玩家两次

22、点击的图片不相同,在通知视图重绘一个方框时,会根据是否为已选中的点显示不同的图案,不同的图片是不会被选中的。3、通过使用“炸弹”道具功能可进行图片消除。通过点击界面右边的“炸弹”选项触发事件,点击后如果界面上存在两张路径连通的相同图片则随机消除。但是炸弹数目是有限的,默认数目为三,每使用一次“炸弹”功能,炸弹的数目就会自动减一,当炸弹数目为零的时候,玩家不可以使用炸弹功能。如果玩家再次点击炸弹时,则会出现相应的提示,没有可用的炸弹道具。通过使用“提示”功能消除图片。如果玩家无法找到可以消除的图片,则可以点击提示按钮,点击后如果界面上有两张相同的图片则通知视图重绘一个方框来提示玩家,玩家可以点击

23、连接的两张图片,消除相同的图片。但是提示数目是有限的,默认数目为三,每使用一次“提示”功能,提示的数目就会自动减一,当提示数目为零的时候,玩家不可以使用提示功能。如果玩家再次点击提示按钮时,则会出现相应的提示,没有可用的提示道具。通过使用“刷新”功能消除图片。如果玩家无法找到相同的图片,则可以点击刷新按钮,点击后界面上剩余的图片会进行重新排列,玩家继续游戏。但是刷新数目是有限的,默认数目为五,每使用一次“刷新”功能,刷新的数目就会自动减一,当刷新数目为零的时候,玩家不可以使用刷新功能。如果玩家再次点击刷新按钮时,则会出现相应的提示,没有可用的重列道具。6、当系统开始游戏后,系统会在后台记录时间

24、,如果在玩家还没有消除所有图片时,系统倒计时结束,那么系统会弹出对话框,提示用户:“时间到!请重新开始!”7、如果时间还没有结束,玩家消除掉关卡里所设置的所有图片,系统会提示玩家“通关,欢迎进入下一关”。8、游戏通过设置关卡可增加游戏的难度,即通过设置时间不变,图片的个数改变来增加游戏难度。void initGameMap(int gateNum) boxQuantity = 50 + gateNum * 10; if (boxQuantity 220) boxQuantity = 220; typeNumber = 30 + 4 * gateNum; if (typeNumber Publi

25、cVar.MAX_TYPE_NUMBER) typeNumber = PublicVar.MAX_TYPE_NUMBER; ArrayList forRandom = new ArrayList(); for (int i = 0; i PublicVar.MAP_X_NUMBER; i+) for (int j = 0; j 220) boxQuantity = 220; typeNumber = 30 + 4 * gateNum; if (typeNumber PublicVar.MAX_TYPE_NUMBER) typeNumber = PublicVar.MAX_TYPE_NUMBER

26、; ArrayList forRandom = new ArrayList(); for (int i = 0; i PublicVar.MAP_X_NUMBER; i+) for (int j = 0; j PublicVar.MAP_Y_NUMBER; j+) forRandom.add(new Point(i, j); Random randomGenertor = new Random(); int step = 0; while (step boxQuantity) int temp = randomGenertor.nextInt(forRandom.size(); Point t

27、empPoint = forRandom.get(temp); gameMaptempPoint.xtempPoint.y = true; forRandom.remove(temp); step+; 在检验两个方块是否能消除的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且能连线成功。分为3种情况:从以下的这三种情况,我们就可以知道,需要进行三个检测,这三个检测分别检测一条直路经。这样就会出现三条路经。如果这三条路经上都是空按钮,那么就刚好会是三种直线(两个转弯点)把两个按钮连接起来了。1)判断两张图片在水平方向上是否可以连通,可以用以下算法实现: void newSearchMethod() / 先水平方向 ArrayList startPlane = new ArrayList(); ArrayList endPlane = new ArrayList(); int step = 0; do startPlane.add(new Point(start.x - step, start.y); step+; while (start.x - step = 0 & mapstart.x - st

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1