C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十)斜度α地图的构造及算法

在当前的网络游戏中,地图基本都是采取一定斜度的拼装地图,这其中存在两种斜度地图的构造方式:

    第一种我称之为伪斜度地图:该类型地图表现层图片为斜度的,但地图基底障碍物等的构造则实为正方形,如下图:

 

    其实最典型的例子就是上一节所演示的内容了,地图是斜的,但是我们却用垂直的障碍物对其进行基底布局,这就是典型的伪斜度地图了。

    这样的地图优点在于可以使用简单直接的地图构造算法(上一节中有详细的讲解),同样也可以拥有漂亮的画面。但是,当大家将之运用到实际游戏运行中将会发现人物在饶过不规则障碍物时会很别扭。当然,如果您能制作出优秀的地图编辑器并且拥有与之默契匹配的地图的话,这些或许不会成为大问题。

    第二种即为真实的:斜度α地图。下面我将就该类型地图的构造基本原理及其在WPF/Silverlight中的基本实现及算法进行讲解。

    首先解释一下关于α角度。通常来讲,对局式或战棋类回合制网络游戏钟爱于60度、45度角的地图构造;而2D-MMORPG网络游戏则无一定规律,可以是任意角度(根据地图开发策划设定进行统一的约束与规范)。下面我们先来看一张图:

 

    该图以梦幻古龙对局战斗时的场景为例进行了非常详细的分析标注。首先我们要讲解实际对应我们WPF窗口的坐标系W坐标系。图中的W(x)W(y)即对应我们窗口坐标系的X(Canvas.LeftProperty)Y(Canvas.TopProperty) (当然这其中有相对偏移量,我们后面会讲到)。这两轴是垂直的,也是我们最最常见的直角坐标系了,这很好理解。而该游戏的界面坐标系G坐标系,我在图中用蓝色的线进行了标识,其中G(x)正方向G(y)负方向的夹角就是α了(在该游戏中为60)。上图我为了方便演示及说明,假设它的两个坐标系均相交于一个点,这个点我将之定义为坐标原点(0,0)。大家回忆一下前两节讲解的关于障碍物数组Matrix[,]。该数组参数是无法有负值的,如Matrix[-1,5]Matrix[6,-7]等,这些都是语法中非法的。所以假设按照坐标与障碍物等值对应原理(后面章节还会讲到非等值对应参数集体偏移量),如Matrix[5,5]对应G坐标系(5,5)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 41
    评论
C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial)目录 本系列教程目录如下: C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(一)让物体动起来① C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二)让物体动起来② C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三)让物体动起来③ C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(四)实现2D人物动画C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(五)实现2D人物动画C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(六)完美移动 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(七)传说中的A*寻径算法 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(八)完美实现A*寻径动态动画 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(九)2D游戏角色在地图上的移动 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):()斜度α地图构造算法 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(一)地图遮罩层的实现 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二)神奇的副本地图 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三)牵引式地图移动模式① C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(四)精灵控件横空出世!① C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(五)精灵控件横空出世!② C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(六)牵引式地图移动模式② C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(七)完美精灵之八面玲珑(WPF Only)① C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(八)完美精灵之八面玲珑(WPF Only)② C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(九)完美精灵之八面玲珑(WPF Only)③ C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二)第一部分拓展小结篇 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二一)主位式地图移动模式 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二二)重构 - 让代码插上翅膀飞翔 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二三)自适应性窗口化与全屏化 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二四)Be careful!前方怪物出没 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二五)完美捕获精灵之神器 -- HitTest C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二六)通用型角色头像面板 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二七)战斗前夜之构建动态障碍物系统 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二八)经典式属性设计及完美的物理攻击系统 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(二九)人工智能(AI)之追踪者 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三)大法师 - 华丽经典之轮回 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三一) 超酷万变的矢量魔法 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三二) 雷、混、冰、毒、火、风 - 幻化中的魔法魅力! C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三三) 锦上添花之魔法特效装饰 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三四) 地图编辑器诞生啦! C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三五) 地图编辑器的初步使用 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三六) 地图自定义切片与导出 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三七) 地图自适应区域加载 C#开发WPF/Silverlight动画游戏系列教程(Game Tutorial):(三八) 地图间的传送与切换 摘自博客园深蓝色右手文章(原文链接:http://www.cnblogs.com/alamiye010/archive/2009/06/17/1505346.html) 压缩包内的2个文件,chm和exe格式内容一样

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值