| 网站首页 | 科技前沿 | it产品项目 | 软件项目 | 硬件项目 | 发明专利 | 商业城 | 资源中心 | 博客 | 论坛 |  子站: it客栈 多奥网
会员中心
会员注册
繁體中文
推荐:索引 linux arm 手机 嵌入式 os wince dsp 音乐 游戏
 站内搜索:
项目资讯 资源中心
您现在的位置: 爱问科技网 >> IT产品项目 >> 综合 >> 文章正文
手机游戏里用什么方法寻路       ★★★★
手机游戏里用什么方法寻路
作者:佚名 文章来源:不详 更新时间:2006-11-23 20:25:35

寻路算法在游戏中大量应用,在PC游戏里,更是随处可见。就比如星际争霸,红警这些超爽游戏中,用鼠标随便点一个地方,部队就会绕过一些障碍,并以最短的路径到达目的地。那么在手机游戏中怎样达到这种效果呢?这正是本文要讨论的问题。
这篇文章将首先讨论应该怎样实现,而不会给出具体代码。当然,在稍后的文章里,我会对代码做详细的说明,这样做也是为了减轻部分人因带宽小而导致打开网页过慢的问题。
说起寻路,你一定会想起A*这种是程序员都知道的东西,当然,在PC游戏中,A*由于其特色而被大量使用。后来,有些人觉得A*实在“太好”,总是会找出最短路径而导致游戏不太真实,因此,又发明了被我称作“A*++”的东西。
问题回到手机游戏。好像A*真的很好,但我们却不能用它,为什么?因为它太“大”了,我们的游戏会因为他死在手机上。前几天在QQ群里看到有人作了一个A*,当然,是测试用的,这不是不可以,但是如果真的用到游戏里,并且是体系较大的游戏里,就真TMD会死悄悄的!
现在的问题是,我需要在一个网络游戏中进行寻路,我应该用什么方法呢?有三个选择:

1.深度优先:即能走就走,若有多条路可走则按照一定的次序选择(如上下左右),但不走回头路。如果无路可走就退回。显然这种方法不一定能找到最短的路径,但它对内存的要求很小。由于与真实的找路过程有相似之处,所以可以让精灵直接按搜索的过程移动,不需任何等待。不过由于上下左右的次序太机械,精灵一开始并不是朝着最短的路线走去,所以移动路线还不够真实,特别在比较空阔的时候会容易找不到路。

2.广度优先:与深度优先搜索相对应的是广度优先搜索。这种方法的思路很简单,就是先搜索一步可到的点,再搜索两步可到的点......如此直到找到目标点为止。这种搜索方法显然能保证走的是最短路径,搜索速度也较快,不过对空间的占用较大。

3.启发式搜索:比如A*。(懒得讲,PASS掉)

我使用广度优先算法,因为如果在一种限制时间的游戏里,深度优先的速度将是无法容忍的。当然,广度优先会用不少的内存,当然,我相信你总有办法会解决。前阵子我也请教了GUST(猛玛技术总监)关于寻路这个问题,他同样认为广度优先是一种比较可行的在手机游戏里使用的方法。当然,不同的问题在不同的游戏中会有不同的应该效果,就比如广度优先算法,我在使用中也遇到了不少问题。我将会在下篇文章中给出代码以及一些问题的解决方案。(当然,水平有限,可能这些问题很拙劣)
如果你感兴趣,请联系我,我们一起讨论,QQ:70705327

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    相关文章
    GSP智能手机在城市管理中
    华硕X1600独立显卡游戏笔
    戴尔推四核游戏电脑XPS7
    寒促降价300元 TCL海盗游
    搭建理想的手机芯片平台
    用单片机控制手机收发短
    用串口连接GSM手机发送和
    CF卡在手机测试系统中的
    智能手机操作平台大翻盘
    据传Google开发手机操作
    更多内容
    专题栏目
    更多内容
    最新推荐 更多内容
    | 设为首页 | 加入收藏 | 关于我们 | 版权申明 | 友情链接 | 谷歌 雅虎 百度 | 管理登录 | 

    爱问科技网
    爱问科技网

    21aw@21aw.com
    粤icp备06099319