##### 1 引言
《球球大作战》虽然在玩法上类似于大球吃小球的模式看起来很单薄。但是在游戏过程中会出现无数种意外情况,这就需要玩家运用一系列策略来达到不被吃和吃掉别人球的目的,大大增加了游戏的耐玩性。游戏彻底抛弃了枯燥无味的单机模式,采取全球玩家联网实时对战。当竞技在PC端打的火热的时候,《球球大作战》率先引进了微竞技的新模式,让玩家在休闲的同时还能体验到竞技的乐趣,这种尝试也博得了一片称赞声。
1.1 编写目的
球球大作战在在最近几年风靡全球,其版本也在不断迭代。本项目取其最核心的玩
法,给玩家一个最纯粹的休闲游戏体验。此外《球球大作战(简易版)》是基于Easyx图形库开发出来的,在用户界面显示方面表现良好,相信一定会给用户一个不错的游戏体验。
1.2 开发背景
《球球大作战》是民族自研,积极健康休闲竞技游戏的代表。轻快明亮的画风、休闲有趣的玩法、富有深度的竞技性,使其成为国产手游创新模范。作为目前最具人气的移动电竞游戏,《球球大作战》累积用户数已超过1.7亿,最高同时在线人数突破175万。月活跃用户达到6000万。年轻化也是《球球大作战》的一大特色,朝气活力的学生群体是游戏主力军,95后及00后用户占比极高。
1.3 可行性分析
1.3.1 经济可行性
本项目是基于C语言开发,开发平台我们选择Visual Studio 2017 Community,此版本为免费版,由Microsoft公司免费提供给开发者使用;主流的开发环境有Windows和Linux,我们选择使用Windows进行开发,因为Windows我们比较熟悉,方便我们快速入手项目开发,所以需要一台安装了Windows操作系统的计算机;此外还使用了Easyx图形库,这个图形库也是免费提供给开发者使用和学习的。因此,总的经济方面付出不高,故经济可行性较高。
1.3.2 技术可行性
本项目大部分使用了C语言的语法,还使用少量的C++语法,调用了Easyx图形库。C语言方面,大部分知识是可以比较容易实现的,少部分通过翻书和查阅资料也是能够实现的。C++方面的语法,我们则较为不熟悉,需要花费较多的时间去了解。
1.4 问题定义
完成一个简易版的球球大作战项目,如何实现大球吃小球的功能?如何实现小球的移动和地图的刷新?如何实现游戏的暂停?等等......
1.5 参考文献
[1] 叶安胜, 鄢涛. C语言综合项目实战[M]. 科学出版社, 2015.
[2] David Griffiths. 深入浅出C语言. 东南大学出版社, 2013.
[3] Stephen Prata. C Primer Plus(第6版 中文版). 人民邮电出版社, 2016.
[4] [啊哈磊](http://search.dangdang.com/?key2=%B0%A1%B9%FE%C0%DA&medium=01&category_path=01.00.00.00.00.00). 啊哈C语言!逻辑的挑战(修订版). [电子工业出版社](http://search.dangdang.com/?key3=%B5%E7%D7%D3%B9%A4%D2%B5%B3%F6%B0%E6%C9%E7&medium=01&category_path=01.00.00.00.00.00), 2017.
[5] [啊哈磊](http://search.dangdang.com/?key2=%B0%A1%B9%FE%C0%DA&medium=01&category_path=01.00.00.00.00.00). 啊哈!算法. 人民邮电出版社, 2014.
[6] https://www.baidu.com/[百度]
[7] https://easyx.cn/[Easyx]
##### 2 需求分析
2.1 需求分析图
![](img/structure.jpg)
2.2 功能需求分析
1)地图。利用easyx图形库生成一个适当大小的白色背景地图,和在右上角生成一个浅灰色的小地图用于显示玩家和AI的缩略图与位置。
2)文件存储。利用文件操作存储累计游戏次数和游戏时间。
3)玩家。初始化玩家球(包括坐标、生命值、颜色、大小、形状)。
4)AI(机器人)。初始化AI,生成指定数量的AI,每个AI随机坐标,生命值均为1,颜色随机,大小固定与玩家相同,形状为圆形。
5)生命。玩家和AI初始生命值均为1表示活,死后生命值变为0。
6)食物。随机位置生成指定数量的食物,颜色随机,大小在一定范围内随机,形状为圆形、椭圆形、圆角矩形等随机。
7)思路。玩家通过方向键控制球移动;大球吃小球,若a.r>b.r且a和b 圆心距d<a.r+b.r,则a.r = sqrt(a.r*a.r + b.r*b.r),b.r=0,b的生命变为0。所有AI的生命都变为0时,游戏结束,获得胜利。
8)玩家如果被AI吃,玩家生命变为0,游戏结束,游戏失败,显示游戏累 计时间。
2.3 性能需求分析
1)性能:程序总体占用空间较小,响应时间较块。
2)可修改性:程序代码层次清晰,主要注释均有,便于后期修改与维护。
3)可用性:程序目前为止尚未出现崩溃情况,可用性较高。
4)易用性:游戏规则简单,即使是新手也能很快熟练的游戏。
**3** **概要设计**
3.1 运行环境
3.1.1 Windows 10
Windows操作系统是最常见的计算机操作系统,是微软公司开发的操作软件。该软件经历了多年的发展历程,目前推出的win10系统相当成熟。Windows操作系统具有人机操作互动性好,支持应用软件多,硬件适配性强等特点,未来该系统将更加安全、智能、易用。
操作系统是将人类利用计算机硬件发挥作用的平台,是计算机软件运行工作的环境,是计算机硬件的翻译。从计算机诞生发展到今天,出现了相当多种类的操作系统。Windows操作系统是其中的佼佼者。Windows操作系统是美国微软公司推出的一款操作系统。该系统从1985年诞生到现在,经过多年的发展完善,相对比较成熟稳定,是当前个人计算机的主流操作系统。
3.2 开发平台及技术基础
3.2.1 Visual Studio 2017
Microsoft Visual Studio是VS的全称。VS是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.Net Core、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 2019版本,基于.NET Framework 4.7。
3.2.2 Easyx图形库
EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。
许多学编程的都是从 C 语言开始入门的,而目前的现状是:
(1)有些学校以 Turbo C 为环境讲 C 语言,只是 Turbo C 的环境实在太老了,复制粘贴都很不方便。
(2) 有些学校直接拿 VC 来讲 C 语言,因为 VC 的编辑和调试环境都很优秀,并且 VC 有适合教学的免费版本。可惜在 VC 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,很是无奈。
(3) 还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。所以,许多老师不得不用 TC 教学,因为 Windows 绘图太复杂了,会偏离教学的重点。新的图形学的书有不少是用的 OpenGL,可是门槛依然很高。
所以,我们想给大家一个更好的学习平台,就是 VC 方便的开发平台和 TC 简单的绘图功能,于是就有了这个 EasyX 库。如果您刚开始学 C 语言,或者您是一位教 C 语言的老师,再