首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Box2D如何检测触摸元素

Box2D如何检测触摸元素
EN

Stack Overflow用户
提问于 2014-09-21 17:09:30
回答 1查看 97关注 0票数 0

我正在尝试使用Box2D构建一个游戏。

我的问题是:在每次更新引擎时,我需要检查每个元素,并根据触摸元素的状态更新元素的状态。所以我真的需要一个函数来检测哪个元素在接触哪个元素。

我怎么能这么做?

编辑:示例->我有5个盒子,盒子1-盒2-盒3互相接触,盒4-盒5互相接触。如果box2的状态变为蓝色,那么box1和box3也应该变成蓝色。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-21 17:56:52

您需要在类中实现ContactListener并使用它的方法:

代码语言:javascript
复制
public class CollisionListener implements ContactListener {

    @Override
    public void beginContact(Contact contact) {


    }

    @Override
    public void endContact(Contact arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void postSolve(Contact arg0, ContactImpulse arg1) {
        // TODO Auto-generated method stub

    }

    @Override
    public void preSolve(Contact arg0, Manifold arg1) {
        // TODO Auto-generated method stub

    }

}

您可以像这样设置监听器

代码语言:javascript
复制
world.setContactListener(new CollisionListener());

每次两个项目联系人,beginContact(联系人联系人)将被调用,您将在联系人对象中获得关于哪两个项目正在碰撞的信息。你可以这样访问它们

代码语言:javascript
复制
if ( contact.getfixtureA.getBody().getUserData() == "element1" &&
    contact.getfixtureB.getBody().getUserData()=="element2" ){
    Colliding = true;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25961730

复制
相关文章

相似问题

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