box2d判断物体脱离地图边界

本文介绍了一种用于游戏开发中判断游戏对象是否越界的算法,并讨论了优化方案,以减少不必要的资源消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前:

/**判断BYShape对象是否越界,越界即将之销毁(可用来判定游戏失败)~ */

+(BOOL) isPositionOutOfBounds:(CGPoint)p {

CGSizemapSize = [BYSinglegetInstance].mapSize;

BOOLflag =NO;

if(p.x< -mapSize.width*PTM_RATIO/2.0f

|| p.x> mapSize.width*PTM_RATIO*3.0f/2.0f

|| p.y< -mapSize.height*PTM_RATIO/2.0f) {

flag =YES;

}

returnflag;

}


之后:

/**判断BYShape对象是否越界,越界即将之销毁(可用来判定游戏失败)~ */

+(BOOL) isPositionOutOfBounds:(CGPoint)p {

CGSizemapSize = [BYSinglegetInstance].mapSize;

intw = mapSize.width*PTM_RATIO, h = mapSize.height*PTM_RATIO;

BOOLflag =NO;

if(p.x< -w*2|| p.x> w*3|| p.y< -h*2|| p.y> h*3) {

flag =YES;

}

returnflag;

}


总结:其实我有点儿杞人忧天了,box2d文档里面推荐的是尽可能将地图边界弄大一点儿。

我之前做的那么小就是因为游戏占用的内存比较多,有点儿走极端地抠能早点将能销毁的给销毁掉

其实大可不必~

很多时候人总是会为一些小细节所弄得精疲力竭,这正是所谓的捡了芝麻丢了西瓜,把握住重头戏才是关键啊~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值