1. 研究目的与意义
1.1调研结果
文献[1]杨睿娜的《c#开发贪食蛇游戏》中,作者在c#语言的基础上利用了几个简单的算法做了一个简单的贪食蛇游戏。在设计的过程中,作者将系统主要分成了两大模块。第一个模块就是完成对游戏主体的抽象化,这里主要设计了两个类,蛇和食物,以及它们的一些属性和方法,第二个模块就是主要算法的设计,包括对蛇的绘制、移动以及食物位置的摆放。我觉得作者这样的做法使得游戏的设计变得很明确,将自己所要做的东西抽象为一个类,再在它的基础之上设计算法完成一系列的操作,使得在开发的过程中不至于出现不知道要做啥的现象。但同时这样的划分也有一定的缺陷,比如在对一个类要做修改时,因为这两个类是有某种联系的,就可能会导致要改很多东西,增大工作量。
文献[2]王文举的《c#语言开发连连看游戏》中,作者主要讲述了c#语言设计连连看游戏的方法和代码的实现。游戏的设计过程借鉴了java中的mvc模式,设计了3大类:模型类、规则类以及画图类。通过建立模型类、游戏规则类和画图类,使程序更加清晰,并且使程序具有强内聚、松耦合特性,使得功能扩展更加方便[2].这个设计模式让我感到焕然一新,将我熟悉的东西应用到我的毕设上来了,值得我去借鉴。
2. 研究内容和预期目标
2.1研究内容
在查阅大量国内外相关文献的基础上,本设计将基于c#思想,开发一个可以运行的射击类小游戏。主要开发内容为:飞机的显示、控制移动、显示复杂图案、发射激光、发射散弹、多台敌机、击中敌机、打靶练习等,另外还有得分、计分、背景音乐、计时、鼠标或键盘交互等主要内容的详细设计与开发工作。最后,对以上设计思路进行总结,完成论文的撰写.
2.2预期目标
3. 研究的方法与步骤
3.1研究方法
3.1.1系统功能模块划分
3.1.2主要功能模块
3.1.2.1用户管理模块
3.1.2.2玩家控制模块
3.1.2.2.1飞机状态模块
3.1.2.2.2游戏状态模块
3.1.2.3游戏逻辑模块
3.1.2.3.1碰撞检测模块
3.1.2.3.2伤害控制模块
3.1.2.3.3道具控制模块
3.1.2.3.4生命控制模块
3.1.2.4关卡控制模块
3.1.2.5图形显示模块
3.1.2.6辅助功能模块
3.2采用的语言以及开发工具
本人打算以c#基础,使用mysql数据库并且基于Visual Studio 2010开发平台进行软件的开发,开发软件完成后,测试软件,使用黑盒和白盒测试,分别测试软件是否达到里预计的需求,并且检查是否有逻辑上的错误,最后形成毕业论文,做好PPT和准备论文答辩。
经查阅C#语言主要有以下特点:
1)语言简洁。
2)保留了C 的强大功能。
3)快速应用开发能力。
4)语言具有自由性。
5)强大的web服务器控件。
6)支持跨平台。
7)与xml相融合。
与其他语言的对比:
用c#语言开发游戏一直是一些.NET拥护者喜欢做的事情,但是有人说c#是托管的,用来做游戏的话程序性能太差,开发游戏那肯定是c/c 莫属。但是相比c 而言,c#语言从语言层次来讲,提供了许多相对于c 的优势,天生的弱引用、空对象、引用传递、反射、线程、安全性和内存管理等,而且c#不再支持对指针的访问,尽管这样一来程序就无法随意的访问内存地址空间,但是却大大增强了程序的健壮性。虽然在.NET框架以下会带来部分性能的损失,但这是由于它的特性决定的,但同时c#对底层api是透明的,从而我们可以简化开发时间,提升开发效率。
3.3数据库的设计
本系统拟采用mysql数据库,目前设计的表主要有
(1)plane表,大体设计如下:
| 字段 | 类型 | 可否为空 |
| id | varchar(8) | N |
| score | varchar(16) | Y |
| time | varchar(64) | Y |
| kind | varchar(8) | Y |
id字段代表了用户id,score代表了本局得分情况,time表示计时,kind表示游戏种类。
(2)Sum表,设计如下:
| 字段 | 类型 | 可否为空 |
| id | varchar(8) | N |
| sumscore | varchar(64) | Y |
| count | varchar(16) | Y |
id字段表示用户id,与plane表的id通过外键相连,sumscore字段表示用户历史总得分,count字段表示用户玩耍游戏的总次数。
MySQL数据库具有以下主要特点:1. 同时访问数据库的用户数量不受限制;2. 可以保存超过50,000,000条记录;3. 是目前市场上现有产品中运行速度最快的数据库系统;4. 用户权限设置简单、有效。这也是我采用mysql数据库的最直接原因。
3.4研究步骤:
本系统拟采用分--总的形式来进行设计。首先,在查阅大量国内外文献的基础上进行系统需求分析,列出一些系统的大致需求。然后进行系统概要功能设计,包括一些系统的大体框架、系统功能模块的详细划分和数据库的设计。接下来就是系统详细功能的实现与算法的实现。再然后就是系统代码的详细编写以及功能的一些集成。最后编写测试用例进行测试发现bug以及完成后续的碰撞检测算法优化。
4. 参考文献
[1]杨睿娜.c#开发贪食蛇游戏.电脑知识与技术,vol.7,no.18,2011.6,pp4442-4443,4445
[2]王文举.c#语言开发连连看游戏.电脑编程技巧与维护,2013.17 ,pp76-80
[3]赵艳忠,王鸿铭.c语言平台下动画技术实现方法浅析.科技信息,2008年第22期 ,pp66,85
5. 计划与进度安排
2022.01.10----2022.03.04查阅资料,翻译5000字译文
2022.03.05----2022.03.20撰写开题报告
2022.03.19----2022.03.25需求分析,学习开发工具
