2010年2月1日
摘要:遥远的彼岸一道新的曙光已悄然浮现,深深的遥望...... 阅读全文
posted @ 2010-02-01 00:46 深蓝色右手 阅读(18389) 评论(54) 推荐(21) 编辑
  2010年1月18日
摘要:本节,我将完成本教程示例游戏的最终两个魔法:传说中的连锁闪电与暴风雪。如此经典与华丽的家伙无论在哪款好游戏中都少不了它们的踪影。 阅读全文
posted @ 2010-01-18 15:44 深蓝色右手 阅读(10104) 评论(43) 推荐(15) 编辑
  2010年1月15日
摘要:是否还记得《传奇》中那一道道从天而降落的闪电,《笑傲江湖网络版》中娥眉救死扶伤的治疗,《剑侠世界》中五毒神出鬼没般的陷阱,《英雄无敌》中超经典的连锁闪电以及《魔兽争霸》中法师之终极魔法-暴风雪。这些家伙都曾在当年的玩家们心中打下深深的烙印,如能将此些经典之作添加进游戏中,毫无疑问将大幅提升游戏的华丽度与趣味性,战斗不就涂个爽快吗?这是是魔法的终极魅力! 阅读全文
posted @ 2010-01-15 16:20 深蓝色右手 阅读(7541) 评论(16) 推荐(3) 编辑
  2010年1月12日
摘要:到目前为止,主角能使用的魔法均为群攻型魔法,群攻魔法的原理相对简单,常见如圆形范围,矩形范围,扇形范围等等,当魔法释放后可以按照本教程的做法对所有坐标处于相应范围内的怪物进行伤害处理,这是直观的处理方式;如果你最求更专业的,可以通过创建一个新的数组副本来记录伤害坐标是否与怪物所处的坐标匹配从而进行相应处理。至于单体魔法呢?它虽然没有群攻华丽的外表,可是实际制作中却需要考虑许多额外的问题。那么本节我将就上一节遗留下来的远距离单体攻击及单体魔法的简明制作原理及的异同进行讲解。 阅读全文
posted @ 2010-01-12 11:29 深蓝色右手 阅读(6758) 评论(23) 推荐(4) 编辑
  2010年1月10日
摘要:曾几何时开始迷恋无垠的天际,幻想着插上翅膀去飞翔。《天翼之链》、《奇迹》、《梦幻诛仙》向无数玩家展示了飞行的世界。翅膀,常常是一种身份的象征,但如能再赋予它自由的含义,好比《永恒之塔》中如履空气般畅快淋漓,游戏魅力自然无可阻挡。 阅读全文
posted @ 2010-01-10 09:24 深蓝色右手 阅读(7141) 评论(15) 推荐(6) 编辑
  2010年1月4日
摘要:在实际开发应用中,Silverlight默认控件样式并不能满足我们所有的需求,特别是对华丽界面的构造,需要对现有控件进行皮肤重写。WPF/Silverlight中使用xaml描述界面,类似Css,它们同样有Style和Template。目前微软开源工具包中集成的均是复杂类型控件,如何修改它们的样式确实难倒了不少朋友,那么本节以分析为主,结合对常用的NumericUpDown控件向大家讲解如何对现有控件进行样式重写。 阅读全文
posted @ 2010-01-04 16:09 深蓝色右手 阅读(5195) 评论(10) 推荐(6) 编辑
  2009年12月31日
摘要:2009年的最后一天,这是我第一次在BLOG中抒写心声,希望给迷茫的朋友们带来一丝光芒,希望为2010年的开始注入春天的活力,我一直坚信我不是一个人在战斗,时代是需要团结的力量,与Silverlight一路走来,感受的风和雨,感慨的世态与人生不在老赵之下。这些是我收集的目前大多数朋友的种种困惑,其中的回答都为我个人想法,不代表微软,也不代表任何团体,我就是我。 阅读全文
posted @ 2009-12-31 11:35 深蓝色右手 阅读(4420) 评论(35) 推荐(13) 编辑
  2009年12月24日
摘要:本节的内容很酷哦,作为圣诞礼物送给大家~嘿嘿 在通常的网络游戏中,物品、装备、技能、快捷按钮等窗口中的图标都是可以相互拖放的,不同的栏目有着不同的限制,例如技能图标不能拖放到物品栏及装备栏中,且不是所有的魔法技能都可以拖放(如被动技能等);而非装备类的所有物品则无法拖放到角色的装备栏中。那么本节我将向大家讲解如何在本教程示例游戏中添加物品栏及装备栏,并实现它们之间双向物品交换的两种模式:拖放模式和双击模式。 阅读全文
posted @ 2009-12-24 11:17 深蓝色右手 阅读(7601) 评论(34) 推荐(11) 编辑
  2009年12月17日
摘要:游戏中会使用大量的菜单面板,而这些面板往往都带有选项卡。如果用Silverlight工具中的TabControl,则需要通过复杂的xaml重写模板来实现自定义样式,这一点时常让开发者头疼,毕竟界面的东西应该属于美工的范畴,这也是我所发现在目前Silverlight中唯一一处只能通过xaml而无法用代码实现的地方。当然,如果您对此特别感兴趣,同样可以到http://www.codeplex.com/Silverlight中下载最新的开源工具源码,其中的示例项目中有非常详细的模板重写案例。本节,我将通过创建用户控件的方式来创建自定义的TabControl和RepeatButton,实现主角属性面板及其中的属性加点器。 阅读全文
posted @ 2009-12-17 17:25 深蓝色右手 阅读(5725) 评论(16) 推荐(5) 编辑
  2009年12月8日
摘要:每款MMORPG都有一个主菜单,通常置于窗口的底部。游戏中主角大部分的设置操作都从这里开启。如人物属性、物品(包裹)、技能、任务、队伍、地图、家族、门派、商城、系统设置等等;当然,还包括快捷自定义菜单栏,以及类似《暗黑破坏神》中经典式的左右键快捷技能栏。这些内容在不同的游戏中往往会根据自身的特性稍做调整,但整体上大同小异。本节,我将同样以《剑侠世界》的游戏主界面为例,向家讲解如何在Silverlight中制作一个精美的主菜单面板及鼠标左右键快捷技能栏。 阅读全文
posted @ 2009-12-08 11:38 深蓝色右手 阅读(6517) 评论(18) 推荐(11) 编辑
  2009年11月30日
摘要:前面章节中讲解的包括对象头像面板、Mini雷达地图等窗体都是位置固定的,在处理起来方式多样且简单;而RPG、SLG、休闲养成等类型的游戏中往往会大量使用到悬浮且可自由拖动的窗体,比如包裹面板、武器装备面板、个人属性面板、技能面板、系统设置面板等等,这就要求我们必须为游戏量身定做一个通用且易用的ChildWindow控件。那么本节我将为大家讲解如何制作一个包含可拖动头部、关闭按钮及内容主体3大部件高自由度的自定义ChildWindow控件,并用它来实现Mini寻路地图。 阅读全文
posted @ 2009-11-30 15:29 深蓝色右手 阅读(6676) 评论(15) 推荐(8) 编辑
  2009年11月23日
摘要:ChildWindow在所有应用领域中都是必不可缺的好工具,小到一个弹出的确认对话框;大到包含众多复杂参数、选项及数据列表的资源窗口,都可以通过它来分类实现。ChildWindow的好处是可以实现拖动及伸缩达到随意布局,更高级的同样可以实现类似最大化、最小化等高级布局功能。 阅读全文
posted @ 2009-11-23 18:02 深蓝色右手 阅读(10245) 评论(17) 推荐(9) 编辑
  2009年11月20日
摘要:Silverlight4 Bata1发布了,在无数银光FANS的期待中悄悄的诞生了。如大家所愿,MS几乎满足了所有我们之前在Silverligh3中抱怨且无法做到的一切。它是一个极具里程碑意义的版本,从功能范围上讲,它已经开始有超越Flash的苗头;而从性能上说,官方公布的图形渲染速度将大幅度提升更是给目前本身性能就不是非常好的FLASH当头一棒;外加Silverlight在内存管理方面的优异表现,我更加期待Silverlight4这个伟大神作的降临。 阅读全文
posted @ 2009-11-20 19:14 深蓝色右手 阅读(8852) 评论(15) 推荐(6) 编辑
  2009年11月12日
摘要:在我的教程里一直未公开的QX.dll以及QXGameEngine开源后,大家讨论得比较多的QXGame_Silverlight3.dll。它俩到底是何方神圣,在引擎中起着何种作用;为什么就它俩不开源,莫非核心代码都在里面?本节我将就如上问题给予大家一个答案,揭开长久以来被尘封的种种谜团。 事情的起因缘于教程第七节中那对牛人老外用C#写的A*算法,一句话:相当的牛。于是乎我忍不住了,这么好的源码不拿来用太亏本了。但是,该源码却是在Winform环境下编写的,如何将之运用到WPF或是Silverlight平台上呢? 阅读全文
posted @ 2009-11-12 11:39 深蓝色右手 阅读(8125) 评论(31) 推荐(7) 编辑
  2009年11月10日
摘要:历时半年之久如火如荼般的教程编写,在所有朋友的支持与帮助下,本教程的Silverlight移植版终于迎来了开源的日子。心理埋藏着太多牢骚想发泄,但是想想其实又何必呢。所谓内行人看门道,外行人看味道,前进的道路只有虔诚者能领悟。 开源序言:本引擎的所有素材均来源于网络,仅供学习与练习使用,不作任何商业用途。所有代码均为“深蓝色右手”编写,代码所有权归“深蓝色右手”所有,在作者批准范围内使用。目前本引擎的完成度为单机部分的50%功能,后面的教程将接着继续拓展功能,最终的目标是实现100%单机部分功能。到此,我想首先回答一些朋友对本引擎的几点疑惑: 阅读全文
posted @ 2009-11-10 16:17 深蓝色右手 阅读(12820) 评论(33) 推荐(10) 编辑
  2009年11月3日
摘要:用了两节的时间进行了本教程示例游戏从WPF向Silverlight平台的移植的关键点讲解,当然细节的优化还有非常多,源码发布后大家应该都能理解,因此这里也不累述了。后面的教程均将在此Silverlight引擎的基础上进行全新演义,敬请关注。 阅读全文
posted @ 2009-11-03 14:25 深蓝色右手 阅读(6468) 评论(14) 推荐(7) 编辑
摘要:深蓝Silverlight-MMORPG游戏引擎单机部分即将开源;这两节里,我将为大家讲解本教程示例游戏从WPF向Silverlight移植的一些关键性优化与性能提升技巧,以及新增加的内容等等。接下来的时间里,我将接着前面的教程,通过Silverlight平台继续为大家演义,目标只有一个:誓将Silverlight游戏引擎完美到底! 阅读全文
posted @ 2009-11-03 12:21 深蓝色右手 阅读(6805) 评论(16) 推荐(13) 编辑
  2009年10月25日
摘要:终于到了地图处理的最后一节,本节我将为大家讲解如何通过传送点实现主角在地图间的传送以及地图之间的切换。地图转换的关键在于把握好移除与添加:即移除之前地图上除主角之外的所有对象,然后再重新加载新地图上的所有对象。本教程示例游戏中,每张地图的信息都详细的记录于Config.xml配置文件中,包括每张地图的表层、遮挡层、障碍物层等等,然后再附加上本节后面将向大家讲解的传送点信息;这样,在地图转换时,我们只需根据配置文件来读取加载相应的地图数据即可。 阅读全文
posted @ 2009-10-25 12:17 深蓝色右手 阅读(6697) 评论(16) 推荐(8) 编辑
  2009年10月20日
摘要:目前地图编辑器已经能够对地图图片进行切片了,那么接下来我们需要做的是对切好的地图片进行拼装从而取代整张大地图。需要特别说明的是,如果一次性将所有的切片加载进游戏中并显示出来,那么效果与使用一张整的地图几乎没区别,性能上甚至可能会更差;本节我们最终要达到的目的是利用这些切片自适应的填充游戏窗口区域,即用最少的地图片实现窗口的无缝填充,从而提升游戏的整体性能。 阅读全文
posted @ 2009-10-20 17:34 深蓝色右手 阅读(7097) 评论(14) 推荐(6) 编辑
  2009年10月14日
摘要:本节,我首先想说明一下为什么选择Lua和JavaScript,因为(1)文章标题写的是它们……汗一个先(2)它们都属于嵌入式脚本语言,主要服务于前端(客户端)。(3)语言方面有诸多相似,且在各自的专长领域都称得上“王者”。(4)体积小,Lua仅仅不到300K;而调用JavaScript更无需额外的资源引用。 阅读全文
posted @ 2009-10-14 17:42 深蓝色右手 阅读(5562) 评论(4) 推荐(4) 编辑
摘要:本节,我首先想说明一下为什么选择Lua和JavaScript,因为(1)文章标题写的是它们……汗一个先(2)它们都属于嵌入式脚本语言,主要服务于前端(客户端)。(3)语言方面有诸多相似,且在各自的专长领域都称得上“王者”。(4)体积小,Lua仅仅不到300K;而调用JavaScript更无需额外的资源引用。 阅读全文
posted @ 2009-10-14 17:36 深蓝色右手 阅读(0) 评论(0) 推荐(0) 编辑
  2009年10月12日
摘要:嵌入式脚本语言能赋予我们系统程序更加强大的灵活性与拓展性,以魔兽级的Lua为例,不过200多K的体积却拥有极快的运算速度。在.NET开发应用中,它可以被广泛的应用到允许Unsafe Code诸如:WinForm、WebForm、WPF等领域,其表现出来的易用性(无须考虑核心模块复杂的逻辑,只需要用最简单的脚本去完成指定任务即可)、跨平台性(一次编译通过的正确脚本可以随意移植到其他语言系统中)、需求拓展性(在对系统功能的补充与升级中同样发挥着举足轻重的作用)等使得它遍布于各种开发领域。 阅读全文
posted @ 2009-10-12 17:30 深蓝色右手 阅读(6967) 评论(9) 推荐(8) 编辑
  2009年10月8日
摘要:做为提升游戏性能的一个重要环节就是地图的优化,作为基于Web的游戏来说,可以通过将地图切成若干同尺寸的片后,根据主角的位置进行时时的按需加载。举个简单例子,好比一幅20000*20000的地图,我们将之以400*400像素为一个地图片单位切成2500片,假若游戏窗口尺寸为800*600,那么我们每次只需加载以主角为中心的周围9块地图片(1200*1200像素)即可实现填充,这比起一次性加载诺大一张地图,且在移动时对其不停的切割,性能优越得太多太多。 阅读全文
posted @ 2009-10-08 22:41 深蓝色右手 阅读(7664) 评论(9) 推荐(8) 编辑
  2009年10月3日
摘要:本想只用两节来完成关于HLSL自定义渲染相关知识的讲解,鉴于最近非常的多的朋友对此相当感兴趣,想知道最多关于这些特效在实际开发中该如何使用及性能相关问题。那么本节我将以一个比较完整的游戏场景为例,向大家讲解HLSL自定义渲染特效的综合应用。 阅读全文
posted @ 2009-10-03 12:27 深蓝色右手 阅读(4423) 评论(11) 推荐(4) 编辑
  2009年10月1日
摘要:上一节我们制作好了地图编辑器,并初步实现了导出地图中的障碍物信息及实现A*模拟寻路。那么当我们得到了包含有障碍物数据信息的xml文件后,又该如何将之应用到本教程的示例游戏中呢? 阅读全文
posted @ 2009-10-01 22:35 深蓝色右手 阅读(7075) 评论(9) 推荐(5) 编辑
摘要:WPF/Silverlight应用程序长时间运行后会产生非常多的内存垃圾(内存泄露例外),特别是在经常需要进行Remove操作的粒子、动画、游戏等方面的应用,国外高手们提出的方案我归纳了一下主要有: 1) UIElement控件实例= null 2) 定时调用GC.Collect() 3) 让控件继承Idisposable接口,并实现相应逻辑 阅读全文
posted @ 2009-10-01 01:05 深蓝色右手 阅读(8385) 评论(22) 推荐(2) 编辑
  2009年9月28日
摘要:通过上一节的解说,大家是否已经对HLSL有了较深刻的认识和理解,HLSL的渲染不仅仅局限于静态处理,通过时时更新HLSL代码的各全局变量值同样可以实现动画形式的渲染,非常Cool对吧~。那么本节我将向大家介绍如何在Silverlight平台上实现HLSL动画渲染特效。 阅读全文
posted @ 2009-09-28 23:07 深蓝色右手 阅读(5720) 评论(13) 推荐(3) 编辑
摘要:Shader Effect中文名称为“渲染特效”或“滤镜”,WPF中自带有5种位图特效及2种渲染特效,而Silverlight中仅有这2种渲染特效: BlurEffect(模糊渲染)和 DropShadowEffect(投影渲染)。由于目前WPF/Silverlight被应用的领域还不是很多,大多数开发者仅仅是将之作为Winform/Webform的替代品,那么现成的这几种渲染特效已足够应付大多数的场合需要。但是如果您打算利用WPF/Silverlight进行更高端的开发,例如动画制作及游戏设计,那么没有少则数十种的自定义渲染特效库是无法满足绚丽多彩的画面需求的。本节我将以Silverlight平台为例,向大家介绍如何制作及实现HLSL自定义渲染特效。 阅读全文
posted @ 2009-09-28 08:46 深蓝色右手 阅读(10351) 评论(21) 推荐(10) 编辑
  2009年9月25日
摘要:没有地图编辑器的游戏不是好游戏--至理明言。 到目前为止,教程示例游戏中虽然实现了A*,但是还无法轻松的为地图设置障碍物;并且游戏所有地图均为一张整的大图片,主角的移动会导致窗体对地图的不停切割,越大的地图带来的负面性能损耗越明显。对地图进行切片处理则可达到性能的最大优化:载入的时候按需加载,地图根据主角的位置仅显示特定部份;并且如果还能配上任意勾勒的遮挡物,那么这一切的一切将更能完美的诠释我们的游戏。开发制作地图编辑器已迫在眉睫。 阅读全文
posted @ 2009-09-25 23:36 深蓝色右手 阅读(11212) 评论(27) 推荐(8) 编辑
  2009年9月20日
摘要:本节我将为大家讲解如何在Silverlight平台上实现上一节中的纸娃娃系统,即WPF-Silverlight的移植。 众所周知Silverlight是WPF的子集,Silverlight对像素位图的处理是在3.0版本之后才开始支持,本节我将大量的用到它: WriteableBitmap – 传说中神话的代言人。 阅读全文
posted @ 2009-09-20 16:43 深蓝色右手 阅读(5947) 评论(16) 推荐(5) 编辑
摘要:传统的基于GDI或GDI+的图形开发大家再熟悉不过了,通过Drawing类可以轻松的对位图进行处理,那么在WPF中的Media类是否也拥有同样类似的方法功能呢?这是肯定的。 本节我以精灵装备合成Show(纸娃娃)为例向大家演示如何在WPF中实现基于像素的图象合成。 阅读全文
posted @ 2009-09-20 15:32 深蓝色右手 阅读(5515) 评论(9) 推荐(4) 编辑
  2009年9月17日
摘要:上一节,我们实现了6大系魔法的附加属性,并赋予了不同的颜色加以区别;但是在实际的游戏开发中,特别是Q版或追求艺术表现的网络游戏中,为了能够更加突显魔法的绚丽与雍华,设计师们会为魔法增加大量的画面体现:例如被冻结的精灵脚底长出冰刺(或被装进一块冰晶中);灼伤的精灵会周身燃烧;中毒的精灵会不停的冒着毒泡泡;麻痹中的精灵浑身会不停的穿梭着电流等等,这些修饰使得魔法的魅力提升到极至,同时也是游戏幽雅细节的终极体现。 阅读全文
posted @ 2009-09-17 16:21 深蓝色右手 阅读(6999) 评论(30) 推荐(8) 编辑
  2009年9月9日
摘要:魔法的魅力不仅仅因为其华丽的外表,更深层次的,它们的额外附加属性效果使得游戏世界更加幻化多彩!无论是中式的金木水火土5行,还是欧式的水火风雷,异或是日式的风林火山等等,在目前的网游世界中无处不得到体现。更甚者,由此衍生出来的好比火影中的混合属性更推动了魔法属性概念的再一次升华。 阅读全文
posted @ 2009-09-09 18:06 深蓝色右手 阅读(10016) 评论(31) 推荐(13) 编辑
  2009年9月4日
摘要:还记得当年的经典网游奇迹(MU)吗?辉煌就如同其名字一般深刻烙印在我的脑海。与朋友们一起通宵奋战的日子已成过去,残留世上那一张张经典不朽的截图让我时刻感受回味。它的成功不仅仅因为其拥有一个极棒的世界观,更深层的却是那些超酷且绚丽的魔法效果,曾经打动着无数年轻的心。 本节我将以奇迹中So cool的“激光”魔法为蓝本,向大家展示如何制作矢量魔法: 阅读全文
posted @ 2009-09-04 17:00 深蓝色右手 阅读(7625) 评论(20) 推荐(6) 编辑
  2009年8月29日
摘要:本节的目的只有一个:提升性能! 首先给出msdn中 关于WPF性能优化及提升的文章目录地址: http://msdn.microsoft.com/zh-cn/library/aa970683.aspx 关于Silverlight性能优化及提升的文章目录地址: http://msdn.microsoft.com/zh-cn/library/cc189071(VS.95).aspx 这些内容之前已经有很多朋友贴出过,我就不细说了。下面才是本文真正的精华:我的深刻体会,在实际开发中,如何最有效的实现产品性能质的提升。 阅读全文
posted @ 2009-08-29 18:48 深蓝色右手 阅读(8503) 评论(11) 推荐(7) 编辑
摘要:Silverlight应用程序发布时会将所有本地资源及类库dll打包进xap文件中,好处是可以非常方便的在网页中部署及桌面化使用;但是同时带来了高度的源码泄露风险。众所周知,xap文件可以被zip等解压软件顺利打开,里面的dll及各种素材资源一目了然; 然后通过****Reflector等工具即可完美的反编译这些dll,就连xaml中的内容也能反射得一清二楚,这不禁让我想起了Flash。网页中的swf可以被众多的下载工具下载,并利用类似**闪客精灵等工具反编译得到甚至具体到每一帧,同样的一切资源将变得毫无遮掩。 阅读全文
posted @ 2009-08-29 12:19 深蓝色右手 阅读(8228) 评论(23) 推荐(7) 编辑
  2009年8月26日
摘要:如果您在使用WPF/Silverlight进行相关动画开发中使用了Storyboard,并对关联属性进行了动画修改,那么您是否有注意到这些关联属性常常无法再通过直接赋值的形式去修改,尽管它的值已经被更改,但却始终无法在界面上得以体现。例如,在我的C#开发WPF/Silverlight动画及游戏系列教程(Game Course)教程里大量运用了Storyboard对角色的X,Y坐标关联属性以及角色Direction朝向关联属性进行动画形式修改... 阅读全文
posted @ 2009-08-26 20:58 深蓝色右手 阅读(9462) 评论(21) 推荐(7) 编辑
  2009年8月6日
摘要:仅以此文献给曾经的旷世经典 – 大法师(T4C 又名第四次审判)。 从红白机到PS3,从286到奔腾N核;曾记否孩时的回忆?与玩伴并肩闯关。往日的经典已化为过眼烟云,那些神话般的游戏角色是否仍徘徊于你的梦里?UO开创了网络游戏新时代,虚拟世界敞开了魔幻华丽的心扉;于是我坚定了信念,用自己的双手去开启这道华丽的轮回! 阅读全文
posted @ 2009-08-06 19:34 深蓝色右手 阅读(9376) 评论(43) 推荐(8) 编辑
  2009年8月2日
摘要:本博客空间所有随笔及文章均采用Creative Commons 组织的协议(最新版本),使用“创作共用(CC)”名称来支持Creative Commons 版权协议。 阅读全文
posted @ 2009-08-02 22:54 深蓝色右手 阅读(4370) 评论(3) 推荐(5) 编辑
摘要:经过前面28节的不断完善,主角已经具备了MMORPG游戏中的大多数功能;但是其他精灵例如怪物等暂时还是无法行动的,上一节中它们无辜的充当了主角的肉靶子,它们开始呐喊:上帝呀,请给予我们灵魂与智慧吧!其实灵魂早就有了,就是精灵的生命线程。那么该如何赋予精灵智慧呢?精灵智慧的实现其实就是为精灵赋予AI(人工智能)。完整的游戏引擎或多或少都必须拥有一定的AI... 阅读全文
posted @ 2009-08-02 21:31 深蓝色右手 阅读(9684) 评论(20) 推荐(9) 编辑