2009年6月17日
摘要: 前面几节详细的讲解了游戏地图的完整构造,比较有难度的就是关于地图内层如障碍物的实现了。A*算法往往能让众多的初学者望而止步,斜度α地图则更需要一定的几何知识及抽象思维。很多朋友就问了:什么年代了,现在都在说面向对象、提高开发效率,难道就没有大众化可以让各层次能力的朋友们都能轻松制作地图引擎的方法吗?大家是否还记得上一节中遗留的一个小悬念,杀手涧就是它了:神奇的副本地图 阅读全文
posted @ 2009-06-17 21:17 深蓝色右手 阅读(12902) 评论(31) 推荐(5) 编辑
摘要: 通常来说,简单的游戏光有它就足够了;但是为了达到更加真实的光影效果,模拟真实的虚拟世界,我们还得继续在地图上下大工夫。本节将就如何实现地图中的遮罩层,即物体对角色的遮挡进行详细讲解。首先我们来看一张比较完善的地图应该包含哪些内容:我将一张地图引擎结构分成了3层(难道这就是传说中的地图三层架构?)... 阅读全文
posted @ 2009-06-17 21:13 深蓝色右手 阅读(13763) 评论(15) 推荐(7) 编辑
摘要: 第一种我称之为伪斜度地图:该类型地图图片为斜度的,但地图基本构造块(障碍物等)则实为正方形。这样的地图可以使用简单直接的地图构造算法(上一节中有详细的讲解),同样也可以拥有漂亮的画面。但是,当大家将之运用到实际游戏运行中将会发现人物在饶过不规则障碍物时会很别扭。当然,如果您能制作出优秀的地图编辑器并且拥有与之默契匹配的地图的话,这些或许不会成为大问题。第二种即为真实的:斜度α地图。下面我将就该类型地图的构造基本原理及其在WPF中基本实现及算法进行讲解... 阅读全文
posted @ 2009-06-17 21:12 深蓝色右手 阅读(15836) 评论(45) 推荐(7) 编辑
摘要: 本节将运用前两节的知识到实际的2D游戏人物在地图上移动中,同时也算是对前面八节的内容进行一次综合运用吧。那么我们首先从最底层的地图讲起,首先我们得将一张地图添加进游戏窗口中,这里我们同样使用Image控件... 阅读全文
posted @ 2009-06-17 21:11 深蓝色右手 阅读(19294) 评论(29) 推荐(8) 编辑
摘要: 本节再上一节的基础上实现鼠标点击动态创建完美的A*寻路动画。(模拟游戏中人物的真实移动,这次可是有障碍物的,可以说基本上完成了人物移动引擎的一半了呢)首先,在上一节的代码前部分加入一个叫做player的圆形作为我们将要控制的对象(模拟游戏中的主角,下文均称之为“主角”... 阅读全文
posted @ 2009-06-17 21:10 深蓝色右手 阅读(18131) 评论(56) 推荐(15) 编辑
摘要: 目前游戏中的寻路最经典的莫过于A*(A Star)寻路了,它是一种寻路思维的合集,那么基于它产生的算法则又有多种,例如曼哈顿启发式算法、对角线取径算法、欧几里德几何算法、最大取值算法等等,不同的算法产生的效果不同:如计算出路径需要的总时间,得到的路径长短优劣等,并且参数的不同也将导致结果的大异。我借助国外一位牛人的A*寻径工具分别通过对各种路径使用各种A*算法来寻径,最终通过花费时间和路径的优美性进行了横向与纵向的比较评分,得出速度最快的算法:曼哈顿启发式算法... 阅读全文
posted @ 2009-06-17 21:09 深蓝色右手 阅读(29219) 评论(59) 推荐(7) 编辑
摘要: 经过前面的介绍和学习,我们分别掌握了如何点击鼠标让对象移动,并且实现2D人物的动作动画。那么,如何将两者完美的进行融合呢?这一节的内容将涉及到很多重要的技术及技巧,很关键哦。 那么同样的,前台xaml还是保持不变,接下来看后台C#第一部分... 阅读全文
posted @ 2009-06-17 21:08 深蓝色右手 阅读(23176) 评论(57) 推荐(14) 编辑
摘要: 第二种方法我称之为图片截取法,准备工作:这里我以创建主角向右方向施法动画为例。首先需要将10帧150*150的图片通过Photoshop或其他方式合成为一张1500*150的大图。然后将这张图片保存到项目文件夹中的\bin\Debug\文件夹中,为什么必须放在这呢?因为后面的代码中BitmapFrame.Create()函数调用相对路径图片只认该文件夹,为什么?问MS。OK,xaml代码仍旧和前面章节的一样,那么接下来就是后台C#... 阅读全文
posted @ 2009-06-17 21:07 深蓝色右手 阅读(21836) 评论(39) 推荐(10) 编辑
摘要: 我们掌握了如何动态创建物体移动动画,那么接下来我将介绍WPF中如何将物体换成2D游戏角色,并通过使用前面所讲的DispatcherTimer计时器来实现2D人物角色的各种动作动画。动态实现2D人物角色动画目前有两种主流方法,下面我会分别进行介绍。第一种方法我称之为图片切换法,准备工作:首先通过3DMAX等工具3D渲染2D的方法制作出角色,然后将角色每个动作均导出8个方向每方向若干帧的系列图片(如果是有方向的魔法图片,很多2D-MMORPG往往会导出16个方向的系列帧图片以求更为逼真),即将每个人物... 阅读全文
posted @ 2009-06-17 21:06 深蓝色右手 阅读(28264) 评论(56) 推荐(11) 编辑
摘要: 第三种方法,DispatcherTimer动画,该类型动画与CompositionTarget动画类似,是基于界面线程的逐帧动画,但他与CompositionTarget动画不同,DispatcherTimer动画可以轻松的进行参数设置:xaml界面代码仍然沿用第一节的,那么接下来我们在后台代码中创建相关对象... 阅读全文
posted @ 2009-06-17 21:05 深蓝色右手 阅读(22620) 评论(22) 推荐(12) 编辑
摘要: 第二种方法,CompositionTarget动画,官方描述为:CompositionTarget对象可以根据每个帧回调来创建自定义动画。其实直接点,CompositionTarget创建的动画是基于每次界面刷新后触发的,与窗体刷新率保持一致,所以频率是固定的,很难人工介入控制。那么如何使用它?xaml的界面代码还是和上一篇中描述的一样,这里不累述了。那么接下来就是创建对象并注册事件... 阅读全文
posted @ 2009-06-17 21:04 深蓝色右手 阅读(27568) 评论(56) 推荐(5) 编辑
摘要: 序:自从QXGame(WPF GAME ENGINE)游戏引擎公布以来,受到很多朋友的热切关注,于是乎有了写教程的想法。那么从今天开始,我将带领大家一步一步的学会如何使用纯C#开发WPF/Silverlight游戏引擎,过程中我会尽量的开源,并对相关小技巧进行解释和介绍,比较复杂的算法原理我会给大家一条绝对可行的思路,至于如何处理这些复杂的算法,那是仁者见仁,智者见智了,或许您写的算法比我的更好呢。 多余的话不多说了,最后来句发自肺腑的话吧:本系列教程的书写编辑花费作者很多心血,没有功劳也有苦劳哇,所以请需要转载的朋友们用突出的字体或颜色标明在您的文章开头,您的大力支持是鼓励我不断写下去的动力... 阅读全文
posted @ 2009-06-17 21:03 深蓝色右手 阅读(58831) 评论(124) 推荐(37) 编辑
摘要: 如果您想精通WPF/Silverlight,无论是打算用它来做桌面程序、网站、WP7软件;异或是动画及游戏开发,本教程均非常值得一看。它将颠覆世俗的动画、游戏技术开发理念,由浅及深的引领您在一个全新的银光世界里遨游。 阅读全文
posted @ 2009-06-17 21:02 深蓝色右手 阅读(129609) 评论(166) 推荐(126) 编辑
摘要: 花了一个月夜晚时间,就为了自己儿时的一个理想。最近比较看好WPF,所以就用WPF开发了个A·RPG游戏引擎,先发几张截图吧:(特别申明一下,游戏里面用了很多其他网络MMORPG的素材,如地图是金庸的,主角是破天一剑的,怪物是剑侠世界的,技能是轩辕剑5的,此软件只做练习用。嘿嘿,目前完成度20%,但是只要您安装有.NET3.0+理论上应该都可以运行,我的开发环境是.Net3.5) 阅读全文
posted @ 2009-06-17 21:00 深蓝色右手 阅读(28527) 评论(107) 推荐(11) 编辑