JumpPointSearchPlus with GoalBounding 学习笔记1

回答为什么搜索目录会有2048条

由于每个栅格周围均有8个邻居,故在jumpDistancesAndGoalBounds_.blockedDirectionBitfield中表现为8个2进制位,计算可得(2^7)*8 = 2048
计算公式为
(jumpDistancesAndGoalBounds_.blockedDirectionBitfield * 8) + currentNode.m_directionFromParent

并且已知currentNode.m_directionFromParent为从0到8的数值,分别代表down,downRigh,right,....直到DownLeft,Null,共9个

由于

if(map.jumpDistance[i] == 0)
{
map.blockedDirectionBitfield |= (1 << i);
}

因此可知只有8位中任意一位二进制不为0,那么这个点就不是wall,因此最大的点为8个中最小一位不为0,计算可得255*8 = 2040,加上 currentNode.m_directionFromParent的(0~8)最大为2048,超过这个数值的搜索都是不成立的。

其他的细节尚在学习中,望大家多多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值