空战游戏设计实例
2016-05-18杨卫红
杨卫红
摘要:就面向对象的程序设计而言,基类的设计至关重要,在游戏软件的开发中,“精灵”的设计是关键的步骤。首先,可以创建精灵的基类,再通过继承得到子类,如战机类、子弹类、爆炸效果类等。该文意在通过游戏的开发过程,阐述面向对象的设计理念。
关键词:面向对象;基类;派生
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)09-0138-04
An Design Instance of Air Combat Game
YANG Wei-hong
(Dongguan Science and Technology School, Dongguan 523460, China)
Abstract: In the case of object-oriented programming, the design of the base class is very important. As we develop a game software,the design of the sprite is a key step. First, we may create a base class of sprite,then we get the derived class by inheritance, for example: fighter class, bullet class, explosion effect class etc. The intention of writing this article is to elaborate the design conception of object-oriented via the game development process.
Key words: game; class; inheritance
1 设计目标
1)利用Visual Studio 2010创建一个基于VC++的MFC单文档应用程序SkyWar,程序运行效果如图1所示。
2)游戏背景及精灵的移动平顺无闪烁,爆炸的动画效果逼真。
3)游戏中的“我方战机”可跟随鼠标移动,当按下鼠标左键时,可向敌机射击。
4)击中目标或双方战机发生碰撞时,可显示爆炸的动画效果。
5)游戏运行环境:Windows XP/ Windows 2000 /Windows 7。
6)分辨率设置:1600×900像素。
2 设计思路
精灵是显示在背景上层的图像,也被称为游戏对象,通常,精灵表示游戏中所有运动的部分,精灵可以包括:自己人、敌人、子弹等。精灵的状态是根据图片、位置、色彩等变化的,因此,精灵需要保存各种信息,如:即时位置、即时速度、即时方向、可见性、帧、动画等。伴随着精灵的出现,将有一帧或多帧的动画被显示出来。当精灵需要出现时,游戏对象将需要一个视觉上真实的动画存在。
本文将呈现如何基于Visual Studio 2010,利用VC++编程开发一个简单的空战游戏的过程。要求游戏能显示“我方战机”、“敌机”、“子弹”、“爆炸效果”等精灵,并能进行简单的空战游戏。我们将通过设计一个精灵的基类(原型类),然后派生子类,创建相应的对象,从而实现在背景上显示游戏的精灵,该游戏中各种类的关系如图2所示。
其中,CFlyObj为基类,由CFlyObj类派生出我方战机类CUpPlane,敌机类 CDnPlane,子弹类CBullet,和爆炸类CExplosion等。