Welcome

首页 / 软件开发 / Silverlight / Silverlight游戏设计:(九)三国策(Demo) 之 “江山一统”②

Silverlight游戏设计:(九)三国策(Demo) 之 “江山一统”②2011-08-12 博客园 深蓝色右手目前市面上的游戏无论单机的还是网游,具备多角度、多类型场景早已屡见不鲜。经典的如《轩辕剑3 》,最传统的中国风RPG角色扮演游戏,整个游戏包含3大类场景:世界(大地图)场景、具体(城市、洞穴 等)场景及战斗(回合)场景。精灵在各场景中的移动、视角、事件等方面均有不同约束与实现;三国策同 样不例外,游戏中除了上一节讲解的RPG场景外,当战役开始时,游戏将切换到SLG回合对战场景。因此, 2D游戏要做到丰富多彩则游戏引擎架构必须搭建在以场景(Scene)为核心的框架上,这也印证了贯穿教程 始终的唯一理念:场景编辑器让游戏开发更美好!

废话先说这么多,接下来我将继续为大家讲解如何实现三国策中的SLG部分场景。

如何让一款游戏同时具备多种场景而不产生混乱?这是我们首要解决的一大关键问题。我的思路是建 立一个枚举:

/// <summary>
/// 场景类型
/// </summary>
public enum SceneKinds {
RPG = 0,
SLG = 1,
……
}

在需要按场景分类处理的情况下,通过Switch实现不同的逻辑。此时有朋友肯定会问:这样不是无形 中增大了游戏框架的耦合度?其实不然,从性能方面讲就算场景类型有10数个之多,Switch所消耗的几乎 可以忽略不计;另外,通过我的亲身体会,除了游戏窗口(Window.cs)中会有一些场景类型枚举判断外, 其他地方几乎不会用到,这其实也是将游戏中所有对象放置在Window中进行交互所带来的好处,同时也再 次证明了前面几节我为大家介绍的基于场景(Scene)为核心,以窗口(Window)为载体的游戏框架设计的正 确性。

接下来是为Scene.xml添加SLG战役场景节点参数。同样的,我们打开场景编辑器,设置坐标系偏移及 绘制不同地形后,通过点击“导出场景信息”得到该新场景的xml信息,本节Demo中我将其代号(Code)设 定为100以示区别于RPG类型场景: