在游戏中,比如坦克向某个方向移动,怎么检测出移动过程中的障碍呢?并且能够绕过去?
记得以前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的开展带来帮助 :)

posted on 2004-05-13 20:12  steeven  阅读(2338)  评论(8编辑  收藏  举报