SLG中搜索某个角色可移动区域的算法

作者:bb 文章来源:迷你手游

可根据地形的不同,以及角色能力的不同来判断可移动区域。例如骑士在平地上可以移动更大的范围。

代码如下:

 /**
  * 搜索可走区域
  * @param map 当前地图表
  * @param row 行
  * @param col 列
  * @param locomotivity 该角色的默认移动力
  * @param direction 方向
  */
 public void scanMovableArea(byte map[][], int row, int col, int locomotivity, int direction){
  if(locomotivity > map[row][col])
   map[row][col] = (byte)locomotivity;
  else
   return;
  
  /** 向上判断 **/
  if(direction != 1){
   int loco1 = locomotivity - mapExpendLocomotivity(row, col - 1);
   if(loco1 >=0)
    scanMovableArea(map, row, col - 1, loco1, 2);
  }
  
  /** 向下判断 **/
  if(direction != 2){
   int loco2 = locomotivity - mapExpendLocomotivity(row, col + 1);
   if(loco2 >= 0)
    scanMovableArea(map, row, col + 1,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值