在box2d中删除body注意事项

在Box2D中删除Body时,需注意删除操作应在物理模拟之后,并且删除Body时要保存并更新其next指针,以避免遇到程序意外停止的问题。本文作者分享了在Android Box2D游戏开发中解决此问题的心得。
摘要由CSDN通过智能技术生成

        最近自己在弄Android的box2d手机小游戏开发,在这过程中碰到的最纠结的问题就是遍历body来删除body,总是会出现意外停止等问题,弄了很久才发现了问题,这个把自己的心得和大家分享下,希望对和我一样的新手有点用,嘻嘻~~~:

       遍历body列表删除body时要注意两点:

     1.一定再放在物理模拟后面,即删除代码写在world.step(timeStep,iterations)后面。

     2.要知道当删除body时,body.m_next指针会出现异常,返回的是垃圾,所以删除时一定要事先保存

        Body b=world.getBodyList();
        for(int i=1;i<world.getBodyCount();i++){


              if(`````````){         //当满足删除条件时,先保存next,再删除

                 Body b1=b.m_next;

                 world.destroyBody(b);

                 b=b1;

              }else{              //不满足删除条件则遍历下一个body

               b=b.m_next;

             }
             
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值