三叶虫的进化(2048)小游戏的开发与设计.docx
《三叶虫的进化(2048)小游戏的开发与设计.docx》由会员分享,可在线阅读,更多相关《三叶虫的进化(2048)小游戏的开发与设计.docx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、三叶虫的进化(2048)小游戏的开发与设计摘要 三叶虫的进化(2048)小游戏是一款几乎人尽皆知的数字益智类单人小游戏。最早于2014年3月20日发行首先在GitHub上发布,原作者是Gabriele Cirulli,后被各个平台运用。缓解生活压力、调节情绪是这款小游戏的初衷。我们采用Java语言和eclipse软件来重新开发了一款界面清晰且具有四个关卡的2048游戏,对游戏的界面、地图、关卡、音效、控制、积分等进行了设计。在设计中,我们借助了JFrame类构建我们的游戏窗体,调用关卡对象的initView()方法来进行界面的搭建,创建一个JLabel对象来显示文本或者图像,使用KeyEven
2、t类来表示组件中发生的键击事件,比如KeyAdapter对象实现 KeyListener 接口,将空白方块放入List集合,不为空的集合,则使用random类来创建对象。以此实现了一个更简洁易操控的2048小游戏。关键词 三叶虫的进化(2048)小游戏 益智 简洁The development and design of the trilobite evolution (2048) mini-gameAbstract Trilobite evolution (2048) mini-game is an almost well-known digital puzzle class single
3、small game. First posted on Github on March 20,2014, by Gabriele Cirulli, then used by various platforms. Alleviate the pressure of life, adjust the mood is the original intention of this small game. We use the Java language and eclipse software to re-develop a clear interface and has four levels of
4、 the game 2048, the game interface, map, levels, sound, control, integration and so on. In our design, we use the JFRAME class to build our game form, call the initView() method of the level object to build the interface, and create a JLabel object to display text or images, keyevent classes are use
5、d to represent the keystroke events that occur in the component, such as the KeyAdapter object implementing the KeyListener interface, placing blank squares into the List collection, or using the random class to create objects if the collection is not empty. With this has realized a more succinct co
6、ntrol 2048 small game.Key Words Trilobite evolution 2048 mini-game puzzle brevity目 录引 言11. 游戏背景11.1 2048小游戏11.2 游戏市场发展现状11.3 开发与设计的意义21.4 本章小结32. 开发环境42.1 开发环境的介绍42.1.1 JDK的介绍42.1.2 Eclipse的介绍42.2 开发环境的搭建42.2.1 JDK的安装与环境变量配置42.2.2 Eclipse的安装与环境变量配置52.3 本章小结53. 系统的需求分析63.1 游戏的可行性分析63.1.1 关于技术可行性63.1.
7、2 关于市场可行性63.2 需求分析63.2.1 系统功能需求分析63.2.2 游戏基本规则73.4 本章小结74. 游戏的基本设计和实现84.1 系统基本设计详细介绍84.1.1 窗体界面搭建84.1.2 窗体的构成94.1.3 游戏面板组件104.1.4 移动控制104.1.5 初始化地图114.2 游戏实现164.2.1 开始界面的实现164.2.2 游戏界面的实现174.2.3 游戏卡片移动功能的实现194.2.4 重新开始游戏功能的实现214.2.5 关卡的实现214.2.6 游戏结束的实现224.3 本章小结225. 游戏测试235.1 游戏系统测试235.2 游戏流程测试235.
8、3 本章小结26总结与展望27参考文献29致 谢30附 录31引 言现今世界,节奏越来越快,休闲益智的小游戏对人们放松心情,释放疲惫,有着不可或缺的作用,这次毕业设计就设计一款休闲益智的三叶虫的进化(2048)小游戏。1. 游戏背景1.1 2048小游戏首先简单的介绍下2048的来历,2014年他利用周末的时间写最早出现的2048这个游戏的程序第一版本就这样问世了,他就是Gabriele Cirulli,他当时呢,也只不过是玩玩罢了。他的最终目的就是拥有一个属于子节点特别的游戏版本。还有很多人在开发这款游戏时也花费了很多时间。在2048这款游戏的创作过程中,主要是在Gitthub上完成这个项目
9、的展示。经过多次的测试和修改之后,功夫不负有心人,最终发表在GithubPages上,得到了大家的广泛关注。2048的使用方法:在游戏开始之初,可以任意选择一个方向去移动,这时,游戏界面中所有的数字方块都会往你所移动的方向汇合,与此同时,就会在空白处出现一个其他在数字的小方块,在这里要强调的是,如果两个相邻的小方块数字是一样的,那么它们就会自动相加,变成一个。就这样循环往复,当界面中出现2048这个数字是,就代表着你成功了,也就意味着游戏的结束。后来,2048渐渐演变出多种模式玩法,传统版,汉服2048,六边形版,朝代版本,2048 3D中文版,2048后宫版等等。游戏闯关技巧:1、将最大的数
10、字尽可能向某一个角落聚集。2、不同的数字按序排列。3、先让前两个最大的数所在的行或列是满的。4、警惕你所移动的数比如新出现的数字2或者4再或者大数旁边尽可能安排与之相近的数。5、关键是要往大数所在的行的方向移动1.2 游戏市场发展现状此次疫情,所有人的宅家生活影响力游戏行业,或许可以通过以下一些数据(图1.2(1)来更直观地体现。在这次疫情中,互联网的使用率创下了新高。尤其是在游戏行业,较其他产业,增长率极为明显。由此可见,休闲益智类小游戏目前市场状况一片良好,甚至大有发展前景,它秉持着便捷,休闲,随玩随停的理念,因而市场前景很好。图1.2(1)图1.2(2)1.3 开发与设计的意义21世纪的
11、今天,我们的生活已经被游戏占据了一席之地,并且游戏对我们生活的影响正在一步步的壮大。回想一下20年前,那时候手机、电视、电脑都不是特别发达,几乎没有什么电子设备,而现如今不仅仅是语言从小抓起,电子行业也扛起了“从小的大旗”。可以说,随着它的近些年的快速发展,游戏产业已经超出了他的最初目的,变成了一种文化。随着市场上游戏的步步壮大, 与其有关的文化也随之广为传播。电子游戏中的益智类小游戏比如我这款三叶虫的进化(2048)小游戏,有教育意义也有娱乐趣味。像这种偏益智类的小游戏主要是锻炼我们的脑力,让玩家快速的去思考,同时也愉悦了自己的身心,达到一箭双雕的效果。现有三叶虫的进化(2048)也有些许的
12、不足,当玩家熟悉了游戏操作之后,很容易就会知道下一个要出现的数字是什么,极大了降低了玩家的游戏体验度,所以,在此基础上,沃恩应该开发出更强大的功能,比如关卡功能,满足玩家的闯关心里。我相信,这样的话会大大的提高玩家们对这款游戏的好感度。1.4 本章小结本次章节一开始是从游戏背景来叙说,主要阐述了当今游戏市场发展现状和此游戏开发的意义两方面,以及简单的介绍了本课题的大致构思内容。2. 开发环境2.1 开发环境的介绍2.1.1 JDK的介绍JDK对于普通人来说并没有太大的用处,它主要是针对于我们一线的开发人员,是一个小型的软件开发包,其中有着库函数,要强调的是还有程序编译功能。JDK是Java语言
13、的软件开发工具包,为Java提供了开发环境和运行环境,JRE是Java Runtime Enviroment的缩写,它指代的是Java的运行环境,是Java程序的使用者。2.1.2 Eclipse的介绍Eclipse-galileo在我们生活当中也有一个别的名字,这个名字我相信大家都耳熟能详,就是eclipse,我们的eclipse有着许许多多的功能,首先,他的源代码是开放的,其次,他的平台是基于java的。我们一线的开发人员可以通过框架和相对应的服务,再加上合适的插件就可以轻轻松松的组成开发环境。当然,Eclipse本身也自带许许多多的插件,JDT就是其中之一。Eclipse的源代码是开放的
14、,主要是负责构建功能较多,且具有商业性质的平台。其中,项目,工具项目,技术项目是他的主要构成。Eclipse也是一个可扩展的IDE,所使用的开发平台基本上都是大家都能用的。Eclipse平台允许工具建造者独立开发与他人无缝集成的工具从而分辨在哪里结束,同时又在哪里开始。2.2 开发环境的搭建2.2.1 JDK的安装与环境变量配置(1) 之前老师给的JDK安装包,下载版本为JDK1.6或者JDK1.7。(2) 双击安装文件JDK。(3) 其次是环境变量的配置:2.2.2 Eclipse的安装与环境变量配置从老师那里直接获取的解压即可得之。步骤和上述类似。2.3 本章小结本章主要介绍开发环境(JD
15、K和eclipse)的安装和环境变量的配置,为游戏的开发与运行做准备,为下文的需求分析和基本设计做铺垫。3. 系统的需求分析3.1 游戏的可行性分析可行性分析是在对本设计进行了详尽的调查之后,对这个项目做出方案,从经济、技术等方面左出一个较为合理的评估,为这个项目的之后开发减少不必要的麻烦,进而减少或者降低失败的可能性。3.1.1 关于技术可行性该工作的作用主要是检测技术方面和系统方面是否合适,以及开发者对软件、硬件需求能否达到预期的需求等。我的这款三叶虫的进化(2048)小游戏,我采用的是java语言作为开发工具,构建图形采用图形库函数,辅以算法演示。Java语言是面向结构化程序设计的语言,
16、它不仅仅具备高级语言有较为高级的效率又具备低级语言同时也高效率的执行。并且它有丰富的数据类型和函数类型,能够完成我们的目标,它的修改、编辑都较为容易掌握,这对后期的修改非常有利。 以上就是对本系统的技术可行性分析,所以无论是从技术还是硬件设备方面,本系统都是满足条件的,符合技术上的可行性。3.1.2 关于市场可行性目前游戏市场发展十分可观,而且此款游戏开发的初衷就是简便,缓解压力,因此面对当今繁忙的日常生活,其具有巨大的市场和发展潜力。关于产品定位,应该是一款老少皆宜的小游戏。该系统将要完成的是三叶虫的进化(2048)小游戏的开发与设计。这是一款随玩随停,使用方便快捷,本设计提供给玩家的仅仅会
17、涉及到简单的方向键的控制、重新游戏等操作,因此需要玩家仅仅熟悉简单的电脑操作即可,不需要专门进行培训。3.2 需求分析3.2.1 系统功能需求分析系统主要实现以下的几个功能:游戏界面、呈现游戏地图、关卡选择、音效控制、重新开始游戏、当前分数和最高分数、积分等功能。关卡选择是当玩家通过方向键中的上下键选择关卡,当选定关卡后,按enter回车键,就会进入游戏界面。重新开始游戏是当玩家无法满足当前进度时点击此按钮,我设置的是ESC键就会再出现游戏界面。游戏界面主要是在4*4的方块中有两到4个数字方块。此时分数为最高分数。游戏界面流程图如图:开始状态显示界面关卡选择游戏界面分数展示游戏名称3.2.2
18、游戏基本规则在开始游戏后玩家通过方向键盘中的上、下、左、右分别来来控制卡片的移动方向,当相邻的两张卡片数字相同时会合并且自动相加,即显示为这两张卡片之和。在移动之中有三张卡片相同时只会合并向移动方向两张卡片。循环往复。3.4 本章小结这章主要讲述了系统的需求分析,简单的描述了游戏的各个功能模块和游戏的基本规则,大致分为DirectEnum.java ,GameStart.java, WaveThread.java, guanka.java, Window1.java, Window2.java然后是对系统概要设计的介绍。4. 游戏的基本设计和实现4.1 系统基本设计详细介绍4.1.1 窗体界面
19、搭建首先,一开始是还没有加入关卡设置的。所以,我们在在项目的面板中,我们首先需要导入一些类,以便在我们方法体中更好的使用他们。例如:awt包下的Color与Dimension类,swing包下的JFrame类,Color类与Dimension类可以为我们提供更多的颜色设置与更精确的对象组件的宽高;import java.awt.Color;import java.awt.Dimension;在GameStart类中,定义主函数,使用我们之前定义的关卡类创建关卡对象gk;import view.guanka;调用关卡对象的initView()方法,这个方法主要是界面的搭建;设置窗口标题为2048
20、游戏;因为关卡类继承于JFrame类,我们都知道,JFrame类是窗体类,我们可以通过关卡子类直接调用父类JFrame类所拥有的功能,直接调用他的getContentPane方法,以此返回窗体的contentPane对象,在调用他的setPreferredSize方法,他的参数是一个Dimension对象,用来更精确的设置宽高;由于JFrame直接调用setBackground设置背景色不生效,我们继续利用contentPane对象设置背景颜色,参数是Color类中的颜色;去掉最大化按钮,获得最佳大小;gk.setResizable(false); gk.pack();设置窗口相对于指定组件的
21、位置。如果组件当前未显示或者 c 为 null,则此窗口将置于屏幕的中央;gk.setLocationRelativeTo(null);设置隐藏窗口为可见。gk.setVisible(true); 4.1.2 窗体的构成下面主要是开始着手窗口部分的设置:窗口1是不加入了音效、移动特效、合并特效;窗口2是加入了音效、移动特效、合并特效;这里主要介绍窗口2,在后面的关卡部分也调用的是窗口2。先处理字体部分,分数的字体;首先,我们先声明一个私有的,静态的得分变量,以便我们在静态方法中更好的调用他,类名可以直接访问静态资源,优先于对象加载,随着类的加载而加载,并且,静态资源只有静态资源可以调用,所以我
22、们将其加上static修饰词;private static int score = 0; 定义一个字体数组,并创建他的对象,并用final修饰词修饰,来保证他最终可以被执行。final Font fonts = ;其次设置标题ltitle;定义标题为2048,状态居中 ltitle = new JLabel(2048, JLabel.CENTER); 设计字体显示效果 Font mf = new Font(String 字体,int 风格,int 字号); 字体可以选择:TimesRoman, Courier, Arial等等风格包括:三个常量 lFont.PLAIN, Font.BOLD,
23、Font.ITALIC字号:字的大小(磅数)设置组件当前使用的字体:setFont(Font fn)ltitle.setFont(new Font(, Font.BOLD, 50);ltitle.setForeground(new Color(0x776e65);移动组件并调整其大小,使其符合新的有界矩形r。再由r.x和r.y指定组件的新位置,由r.width和r.height指定组件的新大小ltitle.setBounds(0, 0, 120, 60);设置显示“分数”部分;创建一个JLabel对象,JLabel对象可以显示文本或者图像,我们将它赋值给lsctip,用来显示SORCE这个字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三叶虫 进化 2048 小游戏 开发 设计
限制150内