即时战略游戏中寻径(Path-finding)算法的原理及实现技术

本文介绍了即时战略游戏中寻径算法的原理和实现技术,包括单个物体的寻径算法,通过避开障碍物的方式确保游戏物体能智能移动。同时探讨了动态障碍物环境下行走路径的生成技术,通过处理可移动障碍物来优化路径计算,提高游戏执行效率。
摘要由CSDN通过智能技术生成

  前几年,我在学校上学时,经常与同学在宿舍里网络对战“红色警报”,玩多了也一直在探索象“红色警报”这类即时战略游戏背后隐藏的编程奥秘。最近,找到一段空闲时间,终于把以前的想法付诸实施,用VC写了一个即时战略游戏的雏形(执行程序在附件中,采用了本文介绍的算法)。在此把即时战略游戏中寻径(Path-finding)算法的原理及实现技术写给大家。

  想象一下,当你兴致勃勃地坐在电脑前,正指挥着屏幕上的千军万马时,突然发现那些坦克车一碰到障碍物便停止行动,你肯定会对它们的愚蠢行为大为不满。因此,在即时战略的计算机游戏中,都采用了实时的寻径算法为可移动物体(如:“红警”中的坦克、士兵)计算一条较为“聪明”的行走路线。

一、单个物体的寻径算法

  寻径算法中需要解决的最基本问题是避开障碍物。最容易实现的方法是(参见图1):

    • 从起点到终点拉一条直线A
    • 沿着直线A朝终点行进,一遇到障碍物便按顺时针方向绕着障碍物行走,直至碰到直线A
    • 重复步骤2,便一定能最终达到目的地。

path01.gif (23374 bytes)

1

(注:红色圆点表示起点,蓝色圆点表示终点;黄色直线标记为A, 黑色直线标记为B, 红色直线标记为B)

  该算法计算出来的路径并不是最短的,有时候还会走出傻乎乎的路线,但速度很快,能在较低档次的PC机上满足游戏中实时的要求,“红警”中的寻径算法便是以此为基础的(在帝国时代中采用比较先进的A*算法,限于篇幅这儿就不作介绍了)。可以对上述算法作几点改进,使可移动物体的行走路线更趋合理。

  () 看图1,显然可移动物体应按沿逆时针方向绕障碍物走,而不该按顺时针

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值