本篇文章是创建一个简单的卷轴射击游戏开发实例,内容比较完整,分享给大家,不过篇幅有些长,可以慢慢看哈!本文除CSDN博客外,任何媒体和出版物禁止转载和使用。 下面将介绍如何开发一个简单的游戏,首先设计一个...
前几天很多朋友要求贴一篇有关C#游戏开发的实例。本篇文章是创建一个简单的卷轴射击游戏开发实例,内容比较完整,分享给大家,不过篇幅有些长,可以慢慢看哈!本文除CSDN博客外,任何媒体和出版物禁止转载和使用。
下面将介绍如何开发一个简单的游戏,首先设计一个基本的计划,然后展示其实现过程。实现将以实效的迭代方式完成。高层次的第一遍开发将使游戏结构可以工作,然后优化这个结构,直到它接近对游戏的最初描述。
一、 一个简单的游戏
通过一个简单的游戏就可以演示到目前为止介绍的所有技术。我们将开发一个2D卷轴射击游戏。这类游戏开发起来很简单,而且可以通过添加更多特性进行扩展。开发这个游戏的一种实效方法是尽快创建一个可以工作的游戏,但是提前计划好最初的各个阶段仍然十分重要。图1显示了游戏流程的一个高层概览。
图1 高层游戏流程
这个游戏的思想是创建一个简单但是完整的游戏。因此,游戏将包括启动屏幕、游戏主体和游戏结束屏幕。游戏主体中将包含玩家可以移动的飞船。玩家应该能够通过按下按键来从飞船前部发射子弹。有一个关卡就可以了,但是多添加几个关卡的效果会更好。当玩家从开始状态进入游戏主体后,关卡便开始。在一定的时间后,关卡结束。如果在关卡结束后玩家仍然存活,则认为玩家胜利,否则玩家失败。游戏中需要一些敌人,它们可以朝向玩家移动,并且能够发射子弹。敌人具有生命值,需要被击中几次后才会死亡。敌人死亡时应该显示爆炸效果。
通过阅读这个简短的游戏描述,很容易开始构建一个类和交互的列表。一种不错的方法是,为主类绘制几个框,然后绘制一些箭头来表示主要的交互。我们需要3个主游戏状态,其中游戏主体状态最复杂。通过游戏描述,可以看到需要的一些重要的类包括Player、Level、Enemy和Bullet。关卡需要包含和更新玩家、敌人和子弹。子弹可以与敌人和玩家发生碰撞。
在游戏的主体中,玩家可以操纵飞船并消灭侵犯自己的敌人。玩家的飞船并不会在太空中实际移动,相反,移动效果是模拟出来的。玩家可以把飞船移动到屏幕上的任意位置,但是“摄像机”总是停留在屏幕正中。为了产生在太空中加速穿行的效果,背景将朝向与玩家前进的方向相反的方向进行卷动。这可以显著地简化玩家跟踪代码或摄像机代码。
这个游戏很小,所以借助这个不太正式的描述就可以开始编码了。所有的游戏代码都放在游戏项目中,而我们生成的可用于多个项目的代码可放在引擎库中。