第十一章 二维游戏高级设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章 二维游戏高级设计

游戏开发与设计 第十一章 二维游戏高级设计 重点和难点 游戏地图 路径查找 碰撞检测 人工智能 游戏地图 大部分的游戏都有地图,类似 SLG, RPG,RTS 之类的游戏, 地图的设计好坏与关卡的吸引程度关系很大。 游戏地图在显示上一般是由很多基本的图形拼合而成。地图在程序最简单的方式是以数组进行存放,最简单的可以以1代替障碍物,0代表可以通过的地面 游戏地图 Int [][] maze={ {1,1,0,0}, {0,1,0,1}, {1,0,0,0}, {0,0,1,1} }; 游戏地图 上面的数据就表示了一个最简单的4X4的地图。这种简单的地图一般以一个个的小方格作为其中的元素,可以很简单的从地图数据中生成地图的实际显示图样。 游戏地图 游戏地图 可以看到坦克的下面就是一幅地图,由平地以及障碍物构成。平面可以通行,用白色表示,黄黑相间的是障碍物,不能够通行。在这个地图中,只用了两种地形。 在具有多种地表情况的地图中,数据结构的表现就没有这么简单。因为同样是属于不可移动的位置,显示在游戏者眼前的却是不一样的图片。 游戏地图 例如一座山的边沿对于程序的属性是一致的,但显示在游戏者面前的是一个由不同的图片组成的连续的山沿。 在日常生活中,需要到达某个终点,我们通常需要查找地图,通过路标确认自己的所在位置,根据自己对于周围环境的判断选择达到终点的方式。 路径查找 而在游戏中,也需要判断一个NPC从一个起点到达一个终点,路途中可能遇到不可预料的障碍, 这是一个最为常见的游戏人工智能问题。尤其在很多RTS游戏,从起点到终点的有效性决定了操作的难度以及游戏者真正意图能否忠实体现。这就涉及到游戏地图的路径搜索问题。 路径查找 基本算法 路径搜索算法中需要解决的最基本问题是避开障碍物。最容易实现的方法是下图描述的算法。 路径查找 从起点到终点拉一条直线A。沿着直线A朝终点行进,一遇到障碍物便按逆时针方向绕着障碍物行走,直至碰到直线A。重复步骤2,使一定能最终达到目的地。 路径查找 该算法计算出来的路径并不是最短的,有时候走出的路线还会让游戏者大失所望,但该算法的运行速度很快,能在较低档次的处理系统上满足游戏中实时的要求,经典游戏“命令与征服”中的寻径算法是以此为基础的。以对上述算法作几点改进,使可移动物体的行走路线更为合理一些。 路径查找 上图中显然可移动物体应按沿顺时针方向绕障碍物走,而不该按逆时针方向去绕弯子。于是,当遇到障碍物时, 首先要判断环绕方向。 如果比起逆时针方向,顺时针方向行走能以更短的路径碰到直线A,那么选取逆时针方向绕着障碍物行走,反之亦然。 路径查找 尽量走直线路径,减少绕行路径。如图所示,先按上述算法计算出行走路线B,然后当可移动物体在路线B上绕着障碍物行进时,每走一步便从当前位置向终点拉一条直线C,如果沿着直线C前进能与目前还未经过的行走路线B的某段相遇(中间没有障碍物),就终止绕行,直接按直线C行走至路线B,从而缩短了路途。 路径查找 当终点处于障碍物包围之中,可移动物体永远不可能达到终点,无论是按顺时针方 向还是按逆时针方向绕行都只能回到原地,无法进行了。对于这种情况的处理方式就是绕障碍物一周,选择离终点距离最近的地方停下来。 (星际争霸中处于岛屿上的兵即采用这种算法) 路径查找 下面描述一下判断运动方向的问题。 下图是一个NPC可能遇到的方向情况 路径查找 当环绕障碍物行走时,先要判断当前障碍物相对于可移动物体的方向,标记为整数i (0-7)。例如:障碍物在可移动物体的正右方,就记作方向5。 路径查找 接着可移动物体依次查看方向j=(i+n) mod 8 (n=1..7),直至发现方向j处无障碍物为止。若障碍物位于正上方(7),可移动物体首先看左上方向(0=(7+1)mod8)能否通过,如果不通就接着试左边方向(1=(7+2)mod8),还不行再依次按图上所示箭头试探其余几个方向,直至找到出口,并往该方向行走一步。 路径查找 若障碍物位于左下方(2),则依次按下方(3)、右下方(4)、右方(5)、右上方(6)、上方(7)、左上方(0)、左方(1)等七个方向查看是否有通路。至于障碍物相对于可移动物体的其他位置的处理,照此类推。 路径查找 重复步骤1、2,便能完成顺时针环绕障碍物行走。该算法详细的伪语言描述见下,反复调用函数ClockwiseWalkOneStep即可顺时针绕障碍一周。 (算法参考教材) 这种方法比较简单,不适合更高的要求 路径查找 A*算法 A*算法与状态空间搜索相关紧密,所以先介绍状态空间搜索。 状态空间搜索,就是将问题求解过程表现为从初始状态到目标

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档