box2d判断物体脱离地图边界

之前:

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

+(BOOL) isPositionOutOfBounds:(CGPoint)p {

    CGSize mapSize = [BYSinglegetInstance].mapSize;

BOOL flag = 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;

    }

return flag;

}


之后:

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

+(BOOL) isPositionOutOfBounds:(CGPoint)p {

    CGSize mapSize = [BYSinglegetInstance].mapSize;

    int w = mapSize.width *PTM_RATIO, h = mapSize.height * PTM_RATIO;

BOOL flag =NO;

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

        flag = YES;

    }

return flag;

}


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

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

其实大可不必~

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

posted on 2012-03-20 18:25  yang3wei  阅读(219)  评论(0编辑  收藏  举报