在游戏中,比如坦克向某个方向移动,怎么检测出移动过程中的障碍呢?并且能够绕过去?
记得以前CSDN上好像有这个题目。没仔细看。
最简单的想法: 在每个运动时间单位,比如0.1秒。都去计算一下看看要移动到的位置上是否已经有障碍。
这样有两个缺点: 计算量比较大 & 坦克很傻,不撞南墙不回头。
这里有个限制条件,坦克是有自己的可见范围。
如果玩家自己定义坦克。要定义UnitProfileAttribute{
Cost = 300; //造价
Speed = 3; //移动强度
Power = 3; //火力强度
PowerSpeed = 5; //炮弹速度
Defence = 100; //装甲
ReloadTime = 10; //连发间隔
RadarRange = 100; //以上坦克性能要经过检测。不能物超所值
override Angle OnStep(Unit me){ //一次移动要走的角度
//看看雷达决定向左走、向右走
//发现敌人要自己决定开火
}
}
这是框架中能提供的信息Unit{
Point Target; //移动目的
ScanInfo Radar; //雷达信息
Shot(); //开炮
}
有兴趣的赶快想想该怎样寻路。系统可能缺省提供一个撞墙向左拐弯的笨坦克。
这个很土的框架正在施工,希望能给OurGame的开展带来帮助 :)