Silverlight游戏设计(Game Design):(十一)梦幻西游(Demo) 之 “天人合一”②

无论是单机游戏还是网络游戏,丰富剧情的背后都离不开NPC默默无闻的工作;有的吆喝着卖药卖武器 ,有的做为宠物常拌左右,更灵活的还可以如《暗黑破坏神》那样,作为随从协助杀敌。强大的游戏离不 开高智能的AI,而AI的背后则隐藏着更为复杂的技术,脚本系统就是其核心。想深入了解游戏脚本的朋友 ,我推荐阅读脚本AI与脚本引擎这篇文章。简单的说,脚本,以独立于游戏主程序代码之外为特征,可以 让游戏设计者而不是游戏程序员编写和精制大部分的游戏结构,玩家同样可以很轻易的溶入到脚本的编写 中并创造出一个全新的游戏世界,这一切都展示了脚本简单神奇之美。

本节,我将在上一节创建的梦幻西游世界中添加一些精灵NPC,并为它们附加一些简单的脚本AI,目的 是让游戏显得更为生气勃勃,乐趣无边。

在与嵌入式脚本语言Lua & JavaScript的交互这篇文章中,我已很详细的讲解了如何实现 Silverlight程序与JavaScript脚本的交互。于是,我们首先同样的需要在梦幻西游Demo源码中添加一个 JavaScript脚本文件,并在嵌有游戏Demo的Index.htm页面里对该脚本进行调用:

接着,我们还要在程序中加入作为脚本调用对象的一些精灵自身方法;这里,我添加了两种方法:连 续随机说话及连续随意跑动:

/// <summary>
         /// 连续随机说话
         /// </summary>
         /// <param name="content"></param>
         [ScriptableMember]
         public void RandomSay(string content) {
             Dialog dialog = new Dialog() {
                 Duration = 5,
                 LocatedSpriteWidth = BodyWidth,
                 Top = BodyTop
             };
             this.Children.Add(dialog);
             dialog.Completed += (s, e) => {
                 this.Children.Remove(s as Dialog);
                 HtmlPage.Window.Invoke("RandomSay", this, new int[] {  TalkContentCode });
             };
             dialog.Show(content);
         }

         /// <summary>
         /// 连续随机跑动
         /// </summary>
         /// <param name="startX">走动范围起点X</param>
         /// <param name="startY">走动范围起点Y</param>
         /// <param name="endX">走动范围终点X</param>
         /// <param name="endY">走动范围终点Y</param>
         [ScriptableMember]
         public void RandomMoveTo(int startX, int startY, int endX, int  endY) {
             Random random = new Random();
             int x = random.Next(startX, endX);
             int y = random.Next(startY, endY);
             Point start = this.Coordinate;
             Point end = new Point(x, y);
             this.destination = end;
             double spendTime = Math.Sqrt(Math.Pow((end.X - start.X) /  LocatedScene.GridSize, 2) + Math.Pow((end.Y - start.Y) / LocatedScene.GridSize, 2))  * Speed * LocatedScene.GridSize; //计算总的移动花费
             PointAnimation pointAnimation = new PointAnimation() {
                 To = end,
                 Duration = new Duration(TimeSpan.FromMilliseconds (spendTime))
             };
             Storyboard.SetTarget(pointAnimation, this);
             Storyboard.SetTargetProperty(pointAnimation, new PropertyPath ("Coordinate"));
             Move();
             StopMovingAnimation();
             moveingAnimation = new Storyboard();
             moveingAnimation.Children.Add(pointAnimation);
             moveingAnimation.Completed += (s, e) => {
                 RandomMoveTo(startX, startY, endX, endY);
             };
             moveingAnimation.Begin();
         }

时间: 2024-10-28 22:20:49

Silverlight游戏设计(Game Design):(十一)梦幻西游(Demo) 之 “天人合一”②的相关文章

Silverlight游戏设计(Game Design)

Silverlight游戏设计(Game Design):(十五)如果还有梦(完) Silverlight游戏设计(Game Design):(十四) Silverlight游戏设计(Game Design):(十三)帝国时代II(Demo)之" Silverlight游戏设计(Game Design):(十二)帝国时代II(Demo) 之" Silverlight游戏设计(Game Design):(十一)梦幻西游(Demo) 之 " Silverlight游戏设计(Gam

Silverlight游戏设计(Game Design):(十五)如果还有梦(完)

Silverlight游戏设计系列到此就全部结束了,原先计划至少为大家献上5个最有影响力的Demo,由于 近期生活及工作的原因让我感到实在疲惫不堪因而未能如愿,还望大家见谅. Silverlight在游戏开发方面拥有它独到之处,目前最新版本为4.0,开发环境集成于强大的 VisualStudio2010中.Silverlight在短短的数年时间里能成长得如此迅速与微软的强力支持分不开,从 Silverlight 5 Wishlist字里行间中我再次感受到世界对Silverlight未来的强烈期待

Silverlight游戏设计(Game Design):(十)梦幻西游(Demo) 之 “天人合一”①

与当年盛大通过代理<传奇>一举成名,九城代理<奇迹>一夜发迹完全不同,金山.网易凭借他们 自主的研发团队,数年时间倾力打造了<剑侠>及<西游>等系列非常优秀的纯国产网游,不仅开创了此 领域的先河,且作为中国网游行业的榜样,让我时常感到崇敬与骄傲.西山居.烈火.大话西游等工作室 这些如雷贯耳的称号已家喻户晓,所有成功的背后都有着一段源自对中国古风古韵故事的生动阐述,事实 也证明了神化传说终是游戏设计中永不褪色的主题. 让经典重现是无比让人神往的体验.本节,我将

Silverlight游戏设计(Game Design):(十四)

练习用游戏素材资源的获取及相关工具使用心得 通过前6节的Demo制作演示,大家应该已经相当熟悉这款Silverlight-2D游戏场景编辑器了:通过它我 们可以构建出各种类型的游戏,这也让广大的Silverlight游戏爱好者们变得蠢蠢欲动,近一段时间里有 很多朋友询问我游戏素材资源是如何获取的,那么本节我将向大家分享这方面的经验与心得,漂亮的游戏 素材配合上不断的游戏编码练习,在成就感中提升自身的游戏设计能力,让我们一同努力吧! 推荐一,免费的RPG游戏素材资源提取工具:RPGViewer R

Silverlight游戏设计(Game Design):(十二)帝国时代II(Demo) 之“战争艺术”①

即时战略类型游戏因其精确的微操,宏大的场面以及丰富的策略元素广受玩家的爱戴,<沙丘魔堡II >开创了真正意义上的即时战略游戏形态,之后Westwood创生了<命令与征服>系列加之暴雪的<魔兽争 霸>及<星际争霸>系列瞬间将RTS的发展推向高潮.就是在这样的氛围下,微软的<帝国时代>系列孕 育而生,踏着人类文明进步的足迹,陪伴我度过了高中那个人生转折的年代. 本节,我将为大家讲解的是利用场景编辑器搭建的帝国时代2游戏Demo. 即时战略游戏最大的特

Silverlight游戏设计(Game Design):(十三)帝国时代II(Demo)之“战争艺术”②

帝国时代是一部阐述世界战争发展史的游戏巨著,讲究还原真实的历史战争场景,其中的阵型系统为 游戏的极大亮点之一:玩家根据兵种的不同搭配上最合适的阵型时常能起到逆转乾坤的神效,经典的如前 枪,中骑,后投石,强大的阵型加上玩家精确的微操能瞬间扫荡大规模敌军而毫发不伤.阵型系统不仅仅 存在于即时战略游戏中,在<三国志>.<信长野望>等SLG策略游戏中,其同样是一者永远不可缺少的 重要机制. 本节,我将在上一节搭建的<帝国时代>Demo的基础上引入比原著更加灵活多变的自定义阵型系

Silverlight游戏设计:(九)三国策(Demo) 之 “江山一统”②

目前市面上的游戏无论单机的还是网游,具备多角度.多类型场景早已屡见不鲜.经典的如<轩辕剑3 >,最传统的中国风RPG角色扮演游戏,整个游戏包含3大类场景:世界(大地图)场景.具体(城市.洞穴 等)场景及战斗(回合)场景.精灵在各场景中的移动.视角.事件等方面均有不同约束与实现:三国策同 样不例外,游戏中除了上一节讲解的RPG场景外,当战役开始时,游戏将切换到SLG回合对战场景.因此, 2D游戏要做到丰富多彩则游戏引擎架构必须搭建在以场景(Scene)为核心的框架上,这也印证了贯穿教程 始终的唯

Silverlight游戏设计:(八)三国策(Demo) 之 “江山一统”①

教程中无数次提到<三国>系列,那段荡气回肠的过去一直深刻烙印于心.我深爱中国的历史,因此 我从不去公开评论政治,因为它是我的母亲:我执着于策略游戏,闲暇时爱不离手的依旧是NDS中的<三 国志>.<三国策Online>作为一款RPG+战棋类策略网络游戏,其发展至今多年而青春永驻,不仅因为题 材的深度及画面上淳朴而幽雅的表现,更重要的是玩家能从对战中体验到身临其境畅快淋漓般的战斗快感 :战鼓声.砍杀声时常萦绕于耳,一场战役过后让我感受更多的是回味,迷恋着重温战场上每一次的策

Silverlight游戏设计:(七)创建基于场景编辑器的新游戏Demo

场景编辑器的功能强大且灵活,从设计之初我已毫不惭愧的将其定位到"让Silverlight游戏场景架设 更简单.更快捷"这样一个高度.源码公布后,很多朋友均迫切想知道如何将其运用到实际的游戏制作中 .其实,为了能让大家更轻松的掌握此编辑器的架构原理及应用,我早已计划好在后续教程中陆续为大家 展示讲解大量的基于此场景编辑器构建的经典游戏Demo,比如<三国策>.<仙剑奇侠传>.<梦幻模拟 战>.<帝国时代>等等.本节,我肩负着艰巨的使命,目的