首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Box2D:如何监听添加到世界中或从世界中移除的实体?

Box2D:如何监听添加到世界中或从世界中移除的实体?
EN

Stack Overflow用户
提问于 2014-02-24 01:42:56
回答 2查看 139关注 0票数 0

在Box2D中,我如何监听添加到世界或从世界中移除的实体?我想用它们来调试。

EN

回答 2

Stack Overflow用户

发布于 2014-02-24 17:36:26

Box2D中没有这样的功能。对于关节和夹具,有“破坏监听程序”,这是为了方便,因为破坏一个身体可能会导致多个关节和夹具被破坏。但是对于body,每次对DestroyBody的调用都只会销毁一个body,而且您知道DestroyBody调用的位置,所以您也可以将任何“侦听器”类型的处理放在同一位置。

我猜你可以像这样包装DestroyBody调用:

代码语言:javascript
复制
// before
world->DestroyBody( body );

// after
myDestroyBody( world, body );

// where myDestroyBody is
void myDestroyBody( b2World* world, b2Body* body ) {
    ... do processing for body about to be destroyed ...
    world->DestroyBody( body );        
}

如果这看起来没有多大效果,那是因为它没有:)

票数 1
EN

Stack Overflow用户

发布于 2014-03-18 18:07:21

要做到这一点,最简单的方法是在任何时候都有一个包含所有身体的数组。

只需在每一帧将数组与其自身进行比较。这里:您知道添加了什么,又销毁了什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21971898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档