太空大战游戏推荐(安卓十大耐玩单机手游)

MonoGame

先简单介绍一下MonoGame吧。它是针对Microsoft XNA 4的开源实现,它能够支持诸如Xbox360、Windows、Windows Phone、iOS、Android、Mac OS X、Linux、Windows 8 Metro、Windows 10等多种平台。目前正在完善针对PlayStation Mobile、树莓派以及PlayStation 4的支持。在图形系统方面,MonoGame允许开发者选择基于OpenGL或者DirectX。您可以到MonoGame的官网介绍网页上了解更多有关MonoGame的历史信息。
太空大战游戏推荐(安卓十大耐玩单机手游)

在两年前我曾打算模拟一个类似魂斗罗的游戏,当时使用的是Microsoft XNA Game Studio 4,后来由于魂斗罗游戏地图处理有问题,我也没有继续深究这个游戏了。于是,在之后的一段时间中,我曾经也想过业余时间做个别力所能及的小游戏自娱自乐一下,可惜被告知Microsoft XNA Game Studio已经被微软抛弃了,最后一个支持它的VS版本是Visual Studio 2010,于是经过一番搜索,我开始了自己的MonoGame之旅。

刚开始的时候,MonoGame让我抓狂,因为它缺失一项最重要的功能:Content Pipeline。如果你要使用MonoGame,你必须继续使用Microsoft XNA Game Studio,并使用XNA的Content Pipeline将所需的材质、声音、动画、字体等素材编译成xnb文件,然后再到MonoGame中调用。这是非常让人难以接受的,所以,当时我也基本打消了继续使用MonoGame的念头。

应该说,使用最新版的MonoGame,已经可以满足开发中等规模的游戏需要了,尽管它仍然存在一些程序缺陷(Bugs)。

Starwar

MonoGame的介绍到此为止,限于篇幅我也就不深入讲解了。请您先移步到下面这段视频,看看我做的Starwar太空大战游戏是不是像模像样:

怎么样?还可以吧?不管怎么样,能够吸引到小朋友就行。^_^

游戏的下载和安装

在启动游戏配置系统时,会出现一个用户账户控制(User Access Control)的对话框,单击“是(Yes)”即可,然后会打开配置界面:

配置完成单击确定按钮后,再进入开始菜单选择Starwar打开游戏即可:

用鼠标移动飞机,单击左键发射激光攻打敌机,游戏任意时刻按ESC键退出。

游戏的源代码

安装Visual Studio 2013

安装MonoGame 3.4

.NET Framework:版本4.0

说明:游戏资源均来自于网络。

背景音乐:《沙罗曼蛇》游戏第二关Remix BGM(来自http://v.youku.com/v_show/id_XNTcyNDUxODAw.html?from=s1.8-1-1.2)

星空背景:来自XNA资源网(http://xnaresources.com/)

子弹发射、爆破声效:来自XNA资源网(http://xnaresources.com/)

其它图片(主机、敌机、子弹):来自Bing搜索结果

游戏的设计

游戏基于Visual C#采用面向对象设计,在游戏业务中,参与游戏的对象统称为精灵(Sprite),以下是本游戏各种不同类型的精灵类依赖图:

Sprite:所有精灵类型的基类

LaserSprite:表示激光子弹的精灵

ParallaxStarSprite:表示移动的星星的精灵,在整个游戏过程中,星星精灵会不断下落,以呈现一种我机正在向前飞行的效果

BackgroundSprite:星空背景精灵,整个游戏过程中一动不动

EnemySprite:敌机精灵

SpaceshipSprite:我机精灵

AnimatedSprite:动画精灵,会通过给定的一张包含每帧图片的精灵表(Sprite Sheet)产生动画效果

SpritePool:精灵库,用于管理显示在屏幕上的指定类型的精灵。当精灵出现在屏幕上时,精灵的IsActive属性为true,此时该精灵可以被加到精灵库中,以便统筹管理;当被管理的精灵从屏幕上消失(坐标超出屏幕边界),精灵库将会释放该精灵的资源,并将其从库中移除。精灵库保证了整个游戏过程中所产生的对象在一定范围内

SpriteGenerator:精灵动态生成器,用于每隔一定的时间,在屏幕的任意地方产生一个精灵,并让其以任意速度朝着一定的方向前进。比如敌机和星星,都是由精灵动态生成器随机产生的,产生的精灵会被添加到SpritePool中,由SpritePool托管其生命周期

实现代码在此就不贴了,您可以直接到上述源代码主页上查看。

发表评论

登录后才能评论