A*寻路算法

Download Report

Transcript A*寻路算法

论文题目:
多人在线图形社区设计与制作
指导教师:黄理旻



班级:08数字媒体艺术
学生:许静
学号:08B01130107
课题研究背景及意义
背景:
Flash平台技术是一种RIA(富互联网应用 )开发和应用技术,
因为其极高的市场占有率、成熟的开发环境、优秀的跨平台支持、
夸张的前端表现能力,有越来越多的网页游戏开始选择了以Flash平
台技术为前端核心。人们无需像过去那样下载客户端并且花费时间
安装。然而国内由于带宽、硬件条件所限,Flash平台技术的应用主
要还是集中在小游戏方面。
意义:
利用Flash平台技术的优势,可以开发出用户体验性更强,成本
更加低的游戏及交互产品。本课题主要研究了Flash平台技术的使用,
通过使用Flash平台技术渲染出2.5D地图画面及人物运动,更好的展
现出寻路算法的功能。以及探讨了Flash平台技术的优势和应用开发
前景。
论文的结构和主要内容
模块设计
A*寻路算法
地图构建
人物控制
XML实现外部数据加载
模块设计
程序划分为3个模块:地图显示模块,数据加载存储模块,
人物控制模块。
在程序中分别对应3个主要的类:GameView,GameData,
GameController。
在运行时,实例化3个类的对象,并且通过每个类所提供
的方法,实现外部数据读取以及地图和人物的加载、人物的
鼠标、寻路控制。
A*寻路算法
A*寻路算法解决的一个最基本的问题是寻路。这里的寻路
指的是,在基于区块的地图中寻找起始节点和终点节点间,绕
开不可通过的障碍,即不可到达节点,所产生最佳路径。 其
中考虑到了挂角问题和代价问题 。
g:从起始节点到当前某个节
点的代价值,是一个精确值。
h:从当前某个节点到目标节
点的代价值。这是一个估计
值,由启发函数来计算该值,
计算时不考虑障碍物的情况。
f:一个节点的代价值,
f=g+h。
地图构建
本次设计采用的是2.5D地图渲染的方式来呈现寻路算法。2.5D
的含义是以2D的技术,通过一系列的视图算法,产生3D的效果,又
被称为等角投影或等距视图。
“等角”一词的含义是指,在这种投影中,x、y、z轴之间的夹
角相同,都为120度。
等角坐标系
二等角坐标系及区块世界
人物控制
人物的移动一共有8个方向即:上、下、左、右、左上、
右上、左下、右下每个方向上分为运动和静止2个状态。人物
控制是本次设计中最综合的表现,它牵扯到了以下环节:1.
人物方向的控制 2.人物寻路流程的控制 3.坐标系转换 4.地
图的深度排序。 如图所示:
人物的8向移动
当鼠标点击地图时,除了
要判断人物的移动,还有一件
重要的事要做,那就是将起点、
终点的坐标值放入到A*寻路算
法的数据结构中,然后进行A*
寻路算法运算。首先判断是否
有路径产生,如果没有路径产
生(封闭的情况),那么什么
也不做,如果有路径产生,则
将结果取出用于人物行走路径
的控制,并且要时刻控制人物
运动的方向。
XML实现外部数据加载
XML是一种标签形式的、结构
化的文件,对于本次设计来说,
它相当于一个数据索引。通过读
取XML中的文件中的信息,便可以
获取地图素材的详细数据,包括
存图片储位置、代价、能否到达。
使用XML的优势在于:可以动态的
改变地图数据和信息而不需要重
新编译程序,从而实现了动态地
图数据的加载。
二维数组的k索引用来获取人
物的朝向,而i索引通过不断的循
环就能产生人物运动的效果。
成果与展望
成果:
本论文主要研究了结合Flash平台技术,实现A*寻
路算法的基本方法,并且利用了Flash技术在显示层面
上的优势,模拟出了2.5D环境中的人物寻路,通过一
个实例来生动的体现出A*寻路算法的功能。
当用户点击地图上的任何区域时,人物会进行运
动,并且会有正确的路径以及朝向,从而构建一个基
本的社区。
设计效果
展望:
Flash平台技术,用面向对象的编程思想来说,它不仅继
承了客户端编程的优势,还实现了设计-开发流程方法的接口。
虚拟社区目前在国内的RIA应用中还比较少见,主要是因
为目前中国网络带宽以及硬件资源不足。它是一个非常有潜力
的RIA应用。虚拟社区通过模拟现实生活中的场景,虚拟出人
物在特定场景中的活动。
最后提出一个对于社区网站建设的构想:使用Flash平台
技术制作社区的2.5D虚拟世界嵌入到网络主页中,可以是简单
的校园向导应用或者是其他的社交平台:可以通过这个社区来
了解彼此,进行虚拟观光。也可以是复杂的师生交互应用,学
生可以在这个游戏中和跟多的老师接触,聊天。
展望效果图
致谢
在本文的撰写过程中,我的导师黄理旻老师对
我每次提出的疑问都给予细心的解答,在本文写作
过程中黄老师更是抽出宝贵的时间进行评阅,提出
具有建设性的修改建议。向我的指导老师,黄理旻
老师致以最诚挚的谢意。
毕业设计-《多人在线图形社区设计与制作》
答辩结束
谢谢