孙跃捕鱼达人游戏项目开发626最终确定要点.docx
《孙跃捕鱼达人游戏项目开发626最终确定要点.docx》由会员分享,可在线阅读,更多相关《孙跃捕鱼达人游戏项目开发626最终确定要点.docx(40页珍藏版)》请在冰豆网上搜索。
孙跃捕鱼达人游戏项目开发626最终确定要点
学校代码:
10128
学号:
201220905048
课程设计说明书
题目:
捕鱼达人游戏项目开发
学生姓名:
孙跃
学院:
理学院
班级:
信计12-2
指导教师:
侯睿
二〇一五年六月二十六日
内蒙古工业大学课程设计(论文)任务书
课程名称:
数据库应用课程设计学院:
理学院班级:
信计12-2
学生姓名:
孙跃学号:
201220905048指导教师:
侯睿
一、题目
捕鱼达人游戏项目开发
二、目的与意义
课程设计、综合设计的基本教学目的是培养学生综合运用所学知识和技能分析与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。
三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等)
●采用SQLServer2005建立数据库,采用界面方式或命令方式创建数据库和表。
●选用一种开发环境设计界面,实现信息的插入、修改、删除、查询的基本功能。
●在开发环境下,通过某种方法建立与SQLServer2005数据库的连接。
四、工作内容、进度安排
主要内容
用Java程序设计语言及开发环境实现简单的捕鱼达人游戏设计。
后台数据库采用SQLServer2005,完成开发环境和后台数据库的连接,系统功能包含基本信息的查询、录入、修改、以及删除。
工作进度安排
第一天:
熟悉课程设计题目及具体要求,对所解决的问题尽量做到胸中有数,基本确定选择的高级语言及开发环境。
第二天到第四天:
拿出解决问题的初步方案,根据课题给出的用户基本需求,写出各数据实体的数据项和联系实体的活动以及活动要使用的数据项,通过E—R图来表示。
由E—R图建立适当的表,并按照不同范式的定义,对表进行规范化,并在数据库管理系统中实现设计的数据库和表。
第五天到第七天:
设计功能模块,确定每个模块的功能,以及各个模块之间的关系。
第八天到第十天:
对每个模块进行具体分析,确定需要的用户界面以及结构,完成软件的整体框架,在开发环境下,编程实现所开发的系统。
第十一天到第十二天:
综合调试,去除软件中的bug,美化应用程序的界面。
有能力的学生增加简单的数据校验、在线错误处理和在线帮助的功能。
第十三天和第十五天:
撰写课程设计报告,验收。
五、主要参考文献
[1]郑阿奇.SQLServer实用教程[M].北京:
电子工业出版社.2014.
[2]徐传运.Java高级程序设计[M].北京:
清华大学出版社.2014.
审核意见
系(教研室)主任(签字):
指导教师下达时间2015年6月8日
指导教师签字:
_______________
摘要
捕鱼达人游戏采用Java高级程序语言设计,游戏后台数据存储、调用,使用SQLServer2005数据库管理系统。
捕鱼达人游戏的设计目的是是以深海为游戏场景,各种鱼儿在其中游动的姿态自然,炮弹打击粒子效果华丽,打击感强烈,很具有趣味性。
实现如用数据库存储用户名和密码,凭正确的用户名和密码登录游戏;需要有不同种类的鱼;让鱼游动起来,被炮击中时有特效(翻滚),并获得金币;炮台可以根据鼠标的位置调整方向;炮台发射时消耗金币;可以切换背景,增加趣味性等功能。
主要依靠如FishPanel.java,Fish.java,FishNet.java,sqljdbc4.jar等一些类和框架实现相关功能。
关键词:
Java;SQLServer;Eclipse;数据库连接
引言
随着人们娱乐生活的不断丰富,人们对休闲游戏的需求也越来越高。
捕鱼达人是以深海为游戏场景,各种鱼儿在其中游动的姿态自然,炮弹打击粒子效果华丽,打击感强烈,很具有趣味性。
捕鱼达人游戏采用Java高级程序语言设计。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
游戏后台数据存储、调用,使用SQLServer2005数据库管理系统。
SQLServer是Microsoft公司推出的关系型数据库管理系统。
具有使用方便可伸缩性好与相关软件集成程度高等优点。
MicrosoftSQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。
第1章开发环境
进行游戏开发设计首先要考虑到合适的开发环境,根据需要不同,合理选择开发语言、环境,以及合理的数据管理系统,这是游戏开发的重要环节。
开发语言、环境,以及合理的数据管理系统选择的好,是软件开发成功的重要一步。
1.1Java(计算机编程语言)
1.1.1Java简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
1.1.2Java程序的优势
与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。
全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。
“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。
这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。
Java平台是基于Java语言的平台。
这样的平台非常流行。
Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。
1.2Eclipse(集成开发环境)
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
1.3SQLServer2005(数据库)
SQLServer是Microsoft公司推出的关系型数据库管理系统。
具有使用方便可伸缩性好与相关软件集成程度高等优点。
MicrosoftSQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。
1.3.1SQLServer数据库的优点
SQLServer能够满足今天的商业环境要求不同类型的数据库解决方案。
它一种应用广泛的数据库管理系统,具有许多显著的优点:
易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。
SQLServer还为数据管理与分析带来了灵活性。
从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。
作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。
SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力。
1.3.2SQL语言
结构化查询语言(StructuredQueryLanguage)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL是一种用于和关系数据库进行交互计算机语言。
当用户想检索数据库中的数据时,就查以用SQL语言发出请求,DBMS(数据库管理系统)对SQL请求进行处理,检索到所要求的数据,并将其返回给用户。
如今SQL语言仅仅是一个查询工具,它是可以对关系数据库中的数据进行组织、管理和检索的主要工具。
SQL语言可以控制DBMS提供给用户的所有功能,SQL语言已成为用户与基于SQL的DBMS的接口。
它的功能包括:
数据定义、数据检索、数据操作、存取共享、数据完整性。
T-SQL是SQL语言的一种版本,应用于SQLServer服务器,主要包括以下几个方面构成:
数据定义语言(DDL)。
DDL用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。
数据库对象主要包括表、缺省约束、规则、视图、触发器、存储过程。
其中主要包括的语句是CREATE,ALTER,DROP。
数据操纵语言(DML)。
DML用于操纵数据库中的各种对象,检索和修改数据。
其中主要包括的语句是SELECT,INSERT,UPDATE,DELETE。
数据控制语言(DCL)。
DCL用于安全管理,确定哪些用户可以查看或修改数据库中的数据。
主要包括的语句是GRANT,REVOKE,DENY。
所以通过数据库对宿舍管理系统进行后台数据支持能够很好的实现捕鱼达人游戏中,对于用户数据的查询、增加、修改、删除等功能。
第2章需求分析与功能设计
进行软件项目设计和数据库设计,首先必须准确了解并分析用户需求(包括数据和处理),是捕鱼达人游戏的设计的重要基础和依据。
2.1用户需求
捕鱼达人是以深海为游戏场景,各种鱼儿在其中游动的姿态自然,炮弹打击粒子效果华丽,打击感强烈,很具有趣味性。
所开发的游戏应包含以下功能:
(1)用数据库存储用户名和密码,凭正确的用户名和密码登录游戏。
(2)需要有不同种类的鱼;
(3)让鱼游动起来,被炮击中时有特效(翻滚),并获得金币;
(4)炮台可以根据鼠标的位置调整方向;
(5)炮台发射时消耗金币;
(6)可以切换背景,增加趣味性;
(7)根据实际开发情况适当修改和优化程序。
2.2系统分析
实现以上功能需要在程序中定义相关的类,完成相关功能的设计。
根据游戏中主要主要功能实现应包括:
FishFrame.java(主文件),FishPanel.java(画布类),Fish.java(鱼),FishThread.java(鱼游动),Bullet.java(子弹),BulletThread.java(子弹移动),FishNet.java(渔网),Money.java(金币)MoneMoveThread.java(金币移动),LoginCheck.java(数据库连接测试),LogInFrame.java(登陆界面),sqljdbc4.jar(数据库连接框架)。
图2.1为本程序各主要的类和框架。
图2.1程序中主要的类和框架
本游戏的整体流程如图2.2:
成功
否
不成功
否
是
是
图2.2游戏的整体流程
2.3主要功能实现
如上所述,本程序的实现,主要依靠以下一些类和框架:
FishFrame.java,FishPanel.java,Fish.java,FishThread.java,Bullet.java,BulletThread.java,FishNet.java,Money.java,MoneMoveThread.java,LoginCheck.java,LogInFrame.java,sqljdbc4.jar等。
本文就FishPanel.java,Fish.java,FishNet.java三个重要的类进行说明,sqljdbc4.jar数据库连接框架将在第四章数据库连接中予以说明。
详细程序见附录。
图2.3系统模块图
2.3.1Fish类
图2.4Fish类模块图
2.3.2FishNet类
图2.5FishNet类模块图
2.3.3FishPanel类
图2.6FishPanel类模块图
第3章数据库建立及维护
数据库是存放数据的仓库,而且这些数据存在一定的关联,并按照一定的格式存放在计算机上。
从广义上讲,数据库不仅包含数字,还包括文本、图像、音频、视频等。
为了使用户名和用户密码更加方便的管理和调用,本游戏的用户名和密码存储在SQLServer数据库中。
3.1数据库的建立
为了更加方便简洁的对数据库进行操作,也为联系课堂所学,本文中我们使用T-SQL语句对数据库进行操作。
3.1.1数据库的建立
创建一个名为game的数据库,其初始大小为5MB,最大为50MB,允许数据库自动增长,增长方式是按10%比例增长。
日志文件初始为2MB,最大可增长为5MB,按1MB增长。
存放位置为“D:
\fishgame”。
建立数据库的T-SQL语句如下:
CREATEDATABASEgame
ON
PRIMARY
(
NAME='game_data',
FILENAME='D:
\fishgame\game.mdf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOGON
(
NAME='game_log',
FILENAME='D:
\fishgame\game.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB
);
建立数据库的过程如图3.1所示:
图3.1game数据库的建立
3.1.2表的建立
在已经建立好的game数据库中建立一个名为tb_user的表,用于存放用户的序号(id),用户名(username),密码(password),并定义id数据类型为bigint,属性为主键非空;定义username数据类型为varchar(50),属性为非空;定义password数据类型为varchar(50),属性为非空。
建立表的T-SQL语句如下:
USEgame
GO
CREATETABLEtb_user
(
idbigintNOTNULLPRIMARYKEY,
usernamevarchar(50)NOTNULL,
passwordvarchar(50)NOTNULL
)
建立表的过程如图3.2所示:
图3.2tb_user表的建立
3.1.3向表中插入数据
表建立好之后需要将用户序号(id)、用户名(username)和密码(password)插入到建立好的表中,准备被调用,预设6个用户:
admin、user1、user2、user3、user4和user5。
向表中插入数据的T-SQL语句如下:
USEgame
GO
INSERTINTOtb_userVALUES(1,'admin','admin')
INSERTINTOtb_userVALUES(2,'user1','123')
INSERTINTOtb_userVALUES(3,'user2','234')
INSERTINTOtb_userVALUES(4,'user3','345')
INSERTINTOtb_userVALUES(5,'user4','456')
INSERTINTOtb_userVALUES(6,'user5','567')
向表中插入数据的过程和插入结果如图3.3、图3.4所示:
图3.3向表中插入数据
图3.4打开插入数据后的表
3.2数据库的备份与维护
随着计算机信息系统的不断发展,用户的核心业务越来越依赖于信息系统的可靠运行,信息系统中的关键业务数据已经成为用户最为重要的资产,对于一个数据库系统来说,数据的安全性和可靠性是至关重要的。
尽管数据库管理系统中采取了各种保护措施以保护数据库的安全性和完整性,但是,计算机系统中的软硬件故障、用户误操作、病毒、自然灾难等都可能会导致数据库系统灾难性的破坏。
所以,做好数据库的备份工作极为重要。
下面我们用T-SQL语句对数据库进行备份。
使用逻辑名为fishgameBK创建一个命名的备份设备,并将数据库game完全备份到该设备。
T-SQL语句如下:
USEmaster
GO
EXECsp_addumpdevice'disk','fishgameBK','D:
\fishgameBK\data.bak'
BACKUPDATABASEgameTOfishgameBK
备份数据库的过程如图3.5所示:
图3.5备份game数据库
第4章数据库连接
为了使用户名和用户密码更加方便的管理和调用,本游戏的用户名和密码存储在SQLServer数据库中。
为了能够使程序能够调用我们预先存入的用户信息,我们需要连接SQLServer数据库。
4.1SQLServer的调试
4.1.1SQLServer身份验证
如果SQLServer2005安装时选择的验证方式为身份验证,首先将之改为“SQLServer身份验证”,以下为操作步骤:
步骤1打开SQLServerManagementStudio。
图4.1打开SQLServerManagementStudio
步骤2使用Windows身份验证连接服务器。
图4.2使用Windows身份验证连接服务器
步骤3选择根节点,单击右键选择属性。
图4.3修改服务器属性
步骤4单击“安全性”选项卡,选择“SQLServer和Windows身份验证”方式。
图4.4修改安全性选项
步骤5设置账号sa用户的密码。
选择sa账户“属性”,如下图。
图4.5为sa账户设置密码
步骤6启用sa账号。
图4.6启用sa账户
步骤7重新启动MSSQLSERVER服务。
图4.7重新启动MSSQLSERVER服务
步骤8断开连接,使用SQLServer身份验证的方式登录服务器。
图4.7重新启动MSSQLSERVER服务
图4.8使用SQLServer身份验证的方式登录
4.1.2MSSQLSERVER的协议
使用JDBC连接数据库需要启动SQLServer数据库需要先打开MSSQLSERVER的协议TCP/IP服务,步骤如下:
步骤1打开SQLServerConfigurationManager。
图4.9打开SQLServerConfigurationManager
步骤2启用TCP/IP服务。
图4.10启用TCP/IP服务
4.2使用JDBC连接数据库
4.2.1LoginCheck类连接测试
LoginCheck.java程序如下:
packagecom.tarena.case09;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
publicclassLoginCheck{
publicstaticbooleanisLogin(Stringuname,Stringpwd){
StringdName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
StringdbUrl="jdbc:
sqlserver:
//localhost:
1433;"+
"DatabaseName=game";
StringdbUser="sa";
StringdbPwd="123456";
Connectioncon;
//1.加载数据类
try{
Class.forName(dName);
//2.创建数据库连接
con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);
Stringsql="select*fromtb_userwhereusername=?
andpassword=?
";
PreparedStatementpstat=con.prepareStatement(sql);
//为占位符赋值
pstat.setString(1,uname);
pstat.setString(2,pwd);
//执行查询
ResultSetrs=pstat.executeQuery();
//根据查询结果返回对应的值
returnrs.next();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
publicstaticvoidmain(String[]args){
//LoginCherk.isLogin("","");
booleanflag=LoginCheck.isLogin("admin","admin");
System.out.println(flag);
}
}
执行程序,连接成功提示如图4.11,返回值为true。
图4.11连接测试成功提示
4.2.2LogInFrame类连接测试
LogInFrame类详细程序请见附件。
步骤1测试时,注释掉登录成功进入游戏的操作。
图4.12注释掉登录成功进入游戏的操作
步骤2输入一组数据库中不存在的用户名和密码,用户名:
test,提示“用户名或密码错误”,如下图。
图4.13登陆不成功提示
步骤3输入一组数据库中存在的用户名和密码,用户名:
user1,提示“登录成功”,如下图。
图4.14登陆成功提示
步骤4取消注释掉登录成功进入游戏的操作,输入一组数据库中存在的用户名和密码,用户名:
user1,登陆成功进入游戏,如下图。
图4.15登陆成功进入游戏
第5章功能展示
5.1进入游戏
输入正确的用户名和密码,进入如下游戏界面,开始游戏,可以看到:
游动的鱼,左上角当前金币数,右上角从右至左依次为关闭游戏、最小化和切换风格,此外炮台会跟随鼠标的移动变换方向,播放背景音乐等。
图5.1进入游戏界面
5.2发射炮弹没捕到鱼
发射炮弹没捕到鱼,金币数量每次减1。
图5.2发射炮弹没捕到鱼
5.3发射炮弹捕到鱼
发射炮弹捕到鱼,金币每次加1,同时捕到两条金币加2,以此类推。
图5.3同时捕到两条鱼
5.4切换游戏风格
共设计了3个风格可以切换,增加了游戏的趣味性,如图,切换到了风格3。