第1章 俄罗斯方块游戏
俄罗斯方块游戏是一款曾经风靡全球的电视游戏机和掌上游戏机游戏产品,它造就过令人惊奇的商业价值,影响过一代游戏产业链。
这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单,却变化无穷,令人玩起来上瘾。
本章将介绍如何在Visual Studio 2013环境下开发一款俄罗斯方块游戏,从而使读者能够迅速了解使用Visual Studio 2013集成开发环境创建小型、简单游戏的方法。
在开发过程中,读者将可以体验到C#所具有的强大功能,并熟悉其可视化的编程方式。
1.1 赢 在 规 划
光盘:视频\第1章\赢在规划.avi
当一名程序员从实习生开始做起,依次经历码农、软件工程师、架构师、CTO等职位的磨砺后,蓦然回首,会发现自己的成功并非偶然!如果需要总结出自己的成功秘诀,那么秘诀就是“比别人更加细致地做工作”。
在众多应届毕业生中,我们要想胜出,就要坦然面对职场竞争,作为刚刚步入职场的程序员,应该从细节上为自己的成功做好准备,这里的细节就是指职业规划。良好的职业规划决定了程序员以后的发展方向和具体轨迹,沿着规划的足迹行走的人,其成功率要远远高于那些好似“无头苍蝇”的迷茫者。
1.1.1 赢在起点——程序员的职业规划
通常来说,程序开发人员的职业发展有如下所示的几个选择:
* 专注于技术,成为技术专家。
* 转型到技术型销售、技术支持等。
* 随着技术的成长,从技术性管理走向高级管理。
上述三个方向是都能看得很清楚的,并且这三个方向都是以技术为基础的。在扎实的技术基础上,如果有比较强的抽象设计能力,而且又打算专注于技术开发,则做架构师是一个不错的选择;如果待人接物能力突出,善于跟客户打交道,则可以转型到销售部门,做技术支持;如果性格更适合于管理,情商表现很突出,则技术管理岗位乃至高级管理岗位应该是下一步的方向。
所以,对于已经工作两年以上的程序员来说,一般可以有几种基本的职业选择:技术专家、软件架构师、实施顾问或销售。并且,无论是C、C++、C#、Java、.NET还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师。尽管架构师的职位待遇优厚,可以工作一辈子,但这种工作职位是很有限的,目前在我国的IT行业中,对架构师的条件要求比较苛刻,且并不是很合理的,与国际上同行业的现状相比,是有一定差距的。
1.1.2 赢在项目开发伊始——做好项目分析
很多开发者,特别是一些初级开发者,写程序时,总是在看到功能需求后,就立即投入到代码编写工作中,需要什么功能,就编写函数去一一实现。
按照这种习惯做事情,在后期调试时,却总会出现这样或那样的错误,可能需要返工,重新做大量的修改。
幸运的是,初学者所接触到的,一般都是小项目,修改的工作量也不是很大。
但是,如果在大型项目中,要对几千行代码返回修改,则是一件很恐怖的事情!
可见,提前做好项目分析和规划是非常重要的。
一个软件项目的开发主要分为5个阶段,分别是需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段。这里,需求分析阶段所得到的结果,是软件项目开发中其他4个阶段的必备条件。从以往的经验来看,需求分析中的一个小小的偏差,就可能导致整个项目无法达到预期的效果,或者说,可能导致最终开发出的产品不是用户所需要的。
软件需求分析的任务,不是确定系统是怎样完成工作的,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。它所做的工作是深入描述软件的功能和性能,确定软件设计的限制,以及软件同其他系统的接口细节,定义软件的其他有效性要求。
我们可以把软件需求分析的过程具体分为4个阶段,分别是对问题的识别、分析与综合、制定规格说明和评审。
1. 对问题的识别
对问题的识别是指系统分析人员研究可行性分析报告和软件项目实施计划,确定目标系统的综合要求,并提出这些需求实现的条件,以及需要达到的标准。这些需求主要分为功能性需求和非功能性需求两种,具体如下。
(1) 功能需求:列举出所开发的软件在功能上应具备什么。
(2) 性能需求:给出所开发软件的技术性能指标,如存储容量限制、运行时间限制、安全保密性要求等。
(3) 环境需求:软件系统运行时所处环境的要求。如硬件方面的机型、外部设备、数据通信接口;软件方面的系统软件(包括操作系统)、网络软件、数据库管理系统;使用方面的部门制度、操作人员的技术水平等。
(4) 可靠性需求:对所开发的软件在投入运行后不发生故障的概率按实际的运行环境提出要求。所以对于重要的软件,或是运行失效会造成严重后果的软件,应提出较高的可靠性要求。
(5) 安全保密要求:应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中的安全保密性能得到必要的保证。
(6) 用户界面需求:为用户界面细致地规定应该达到的要求。
(7) 资源使用需求:开发的软件在运行时和开发时所需要的各种资源。
(8) 软件成本消耗和开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。
(9) 预先估计以后系统可能达到的目标,这样,可以比较容易对系统进行必要的补充和修改。除了这些必需的需求,问题识别的另一个工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。
2. 分析与综合
分析与综合的目标,是给出目标系统的详细逻辑模型。在此步骤中,分析和综合工作需反复地进行。
3. 制定规格说明
需要编制需求分析文档,这种文档又称为软件需求规格说明书。除了编写软件需求规格说明书之外,还要制定数据要求说明书,以及编写初步的用户手册。
4. 评审
需求分析评审,是指在需求分析的最后一步,对系统功能的正确性、完整性和清晰性以及其他需求给予评价。
1.2 第一个项目
光盘:视频\第1章\第一个项目.avi
在做一个项目之前,一定要做好构思和规划工作,并根据需要制定开发流程。本项目的开发流程如图1-1所示。
图1-1 本项目的开发流程
对于初次开发完整软件项目的程序员来说,开发的第一个项目十分重要。在开发伊始,可能会信心不足。此时,就需要建立充分的自信心。
作为一名程序员,面对项目时,我们要仔细分析,想法尝试,想法去实现,这样才能进步,才能找到自己的不足。
1.3 功 能 描 述
光盘:视频\第1章\功能描述.avi
在程序员开发一个应用系统之前,需要彻底弄清这个应用系统的使用过程和必备的具体功能。几乎所有的程序员都会知道这一点,但是绝大多数开发者都对此不重视,认为太基本、太简单和太理所当然。
在此我们提醒开发人员,一定要重视市场调研工作。因为市场的发展是瞬息万变的,一夜之间可能会诞生很多的新奇好用的应用。
所以,要想更好地做好俄罗斯方块游戏项目的功能分析工作,需要将这款游戏彻底试玩几次,全面了解俄罗斯方块游戏的具体玩法。
为此,作者专门从网上下载了一款俄罗斯方块游戏,并详细地进行了试玩。
其游戏界面效果如图1-2所示。很华丽,是不是?我们将取其精华,做个简单的。
根据俄罗斯方块游戏的游戏规则和要求,可以总结出俄罗斯方块游戏的基本功能模块。当然,因为俄罗斯方块游戏是一款在市面中流行多年的游戏,所以游戏的基本玩法和功能大家都耳熟能详。这就有利于在项目规划伊始进行玩法规划设计。显然,这是一个比较“庞大”的工程,相关的要点将在接下来的内容中进行讲解。
图1-2 某款俄罗斯方块游戏的界面
(1) 由软件项目的开发流程,可以做出一个简单的项目规划书,整个规划书分为如下两个部分:
* 系统需求分析。
* 结构规划。
(2) 俄罗斯方块游戏项目的具体开发流程如图1-3所示。
图1-3 俄罗斯方块游戏项目的具体开发流程
* 功能分析:分析整个系统所需要的功能。
* 结构规划:规划系统中所需要的功能模块。
* 总体设计:分析系统处理流程,探索系统核心模块的运作。
* 数据结构:设计系统中需要的数据结构。
* 规划函数:预先规划系统中需要的功能函数。
* 具体编码:编写系统的具体实现代码。
1.3.1 功能模块分析
本项目实例的主要功能就是控制游戏的运行,实现游戏的完整过程。具体来说,主要包括如下功能模块。
(1) 游戏运行界面:供用户在可视平台下控制游戏。
(2) 游戏控制菜单:可以控制游戏的开始、退出和级别选择。
(3) 设置菜单:可以设置游戏的显示样式,并提供游戏帮助等信息。
1.3.2 游戏的模块结构
游戏的模块结构如图1-4所示。
图1-4 游戏的模块结构
1.3.3 游戏的运行流程
具体的运行流程如图1-5所示。
图1-5 具体的运行流程
1.4 搭建开发平台
光盘:视频\第1章\搭建开发平台.avi
一款好的开发工具能够决定整个项目进展的顺利性。但是长久以来,我们一直很困惑,因为Visual Studio .NET已经推出好几个版本,市面中最流行的是Visual Studio 2010,而当前最新的版本是Visual Studio 2013。
工具的不断更新虽然提升了开发效能,但也提高了学习成本。本项目将使用Visual Studio 2013工具开发,这样可以体验Visual Studio 2013的最新功能。
1.4.1 安装Visual Studio 2013
在安装Visual Studio 2013之前,需要先明确如下硬件要求:
* 最好有酷睿II 2.0GHz以上的CPU。
* 至少应有2GB的RAM内存,其中1GB用于维持操作系统运行。
* 至少10GB的硬盘空间。
Visual Studio 2013的具体安装步骤如下所示。
(1) 将安装盘放入光驱,或双击存储在硬盘内的安装文件autorun.exe,弹出“开始安装”界面,如图1-6所示。
(2) 在出现的“安装路径”界面中选择安装路径,并勾选“同意安装条款”选项,单击“下一步”按钮,进入安装起始页界面,在这里选择将要安装的功能,如图1-7所示。在此建议全部选中,避免以后安装时遇到不可预知的麻烦。
图1-6 “开始安装”界面 图1-7 选择安装的功能
(3) 单击“安装”按钮,出现安装进度界面,开始安装,如图1-8所示。
(4) 安装完成后,出现“重启”界面,在该界面中单击“立即重新启动”按钮。
(5) 重启后,将会继续安装,进度完成后,将完成所有的安装工作,如图1-9所示。
图1-8 安装进度界面图1-9 安装成功
(6) 完成安装后,可以从“开始”菜单中启动Visual Studio 2013,如图1-10所示。
图1-10 启动Visual Studio 2013
首次打开安装后的Visual Studio 2013时,将会弹出“选择默认环境设置”对话框,如图1-11所示。本书中用C#开发ASP.NET程序,所以选择“Visual C#开发设置”选项。
然后单击“启动Visual Studio”按钮,开始加载用户环境设置,如图1-12所示。
图1-11 “选择默认环境设置”对话框图1-12 加载用户环境设置
配置完成后,将来到Visual Studio 2013的集成开发界面,如图1-13所示。
图1-13 Visual Studio 2013默认的集成开发界面
1.4.2 规划项目文件
安装Visual Studio 2013之后,发现比以往版本的界面好看了,具体增强的功能还得在后面的使用中才能体会到。接下来,需要新建一个名为“youxi”的窗体项目文件。并新建项目中需要的程序文件,在VS资源管理器中的效果如图1-14所示。
图1-14 实例中资源管理器的效果
各个构成文件的具体说明如下。
* 文件Form1.cs:是项目的窗体文件,项目运行后,将调用各窗体元素的对应属性来显示窗体,并且设置各控件的对应事件处理程序。
* 方法定义文件you.cs:功能是使用C#设计项目所需要的各种功能方法,当其他文件需要时,只需调用方法的文件名即可。
* 文件Program.cs:是整个项目的入口文件。
* 文件Form1.Designer.cs:设置窗体各控件和组件的属性。
历时两天,确定好了整个项目的功能模块,做好了整体规划,并选好开发工具开始开发了。这几天体会到总体设计是一个项目的开始,也是后续工作得以顺利进行的前提。所以在此阶段应当是一丝不苟的,考虑到一切影响因素,尽量为后续工作打好坚实的基础。这样看似前面的工作使用了较多的时间,但实际上是节约了后面的时间。总结完毕之后,决定早点休息,为接下来的界面设计养精蓄锐。
……