C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。
本次游戏开发中,一些功能模块代码的编写,需要使用C#。
MonoDevelop是个跨平台的开放源代码集成开发环境,主要用来开发Mono与.NET Framework软件。MonoDevelop 整合了很多Eclipse与Microsoft Visual Studio的特性,像是 Intellisense、版本控制还有 GUI 与 Web 设计工具。另外还整合了GTK# GUI设计工具(叫做Stetic)。目前支持的语言有C#、Java、BOO、Nemerle、Visual Basic .NET、CIL、C与C++ 。
本次游戏开发中,相关游戏代码,需要在Monodevelop编辑器中进行编写与调试。
3 游戏整体设计
3.1 游戏界面
内容主要是简单介绍游戏中游戏界面的元素构成和在Unity中GUI游戏界面的制作方法,其中涉及详细的游戏界面按钮的制作及点击响应相应功能的实现方法。
3.1.1 界面设计
游戏界面是游戏的重要组成部分,当游戏程序打开时,玩家第一眼所看到的就是游戏界面,美观且易于操作的游戏界面,往往能够吸引玩家并且可以让玩家能够快速上手这个游戏。游戏界面的基本元素包括背景、按钮和文本等,在背景、按钮和文本的制作中均使用PhotoShop进行处理,其中对背景和按钮稍作变化处理,以便在点击切换界面时能感到明显变化。
处理好的界面素材的使用需要结合Unity提供的GUI高级控件才能完成在引擎中的游戏界面效果,Unity中的GUI高级控件提供了布局的概念,布局中所有的坐标都是相对的,在屏幕的左上角为起始坐标,通过代码可以在任意地方绘制界面元素,并通过代码给予赋值可以控制其大小,以下是制作好的游戏界面图片:
图3.1 游戏主界面
3.1.2 按钮功能实现
自定义的按钮样式可以由自定义的GUISkin控件来实现,按钮基本状态有三种,静止、划过和激活,每个按钮分别对应三种不同素材,实现鼠标与按钮交互的效果,这里主要使用自定义的GUISkin,在其组件中统一定义按钮类型方法,方便调用不同按钮效果的素材,使得游戏界面元素更丰富。
按钮的点击触发事件主要使用Unity提供的GUI高级控件中的点击命令来实现,即通过代码,实现从玩家处接收到按钮的点击信号,并对其处理,进行相应的操作,如跳转进入游戏场景,界面切换等。这里采用游戏状态机的机制,绘制游戏界面前需要定义游戏状态,然后通过不同的游戏状态绘制不同的界面,实现界面之间的切换。定义代码如下:
public class Menu : MonoBehaviour
{
public const int STATE_MAINMENU = 0;//定义主菜单界面
public const int STATE_STARTGAME = 1;//定义游戏关卡选择界面
public const int STATE_SECONDGAME = 2;//定义游戏第二章界面
public const int STATE_OPTION = 3;//定义游戏设置界面
public const int STATE_HELP = 4;//定义游戏帮助界面
public const int STATE_EXIT = 5;//定义游戏退出界面
public GUISkin menui;//自定义GUI皮肤
public Texture tex_BG; //游戏背景贴图
public Texture tex_start;//开始菜单贴图 基于Unity引擎的三维游戏“火线突围”设计(4):http://www.751com.cn/yishu/lunwen_13245.html