使用 Box2d(适用于 Android)进行碰撞检测?

发布于 2024-12-28 11:01:00 字数 274 浏览 0 评论 0原文

有人可以解释一下使用 box2d for android 进行碰撞检测的工作原理吗?我无法理解 BBContactListener 以什么方式工作。

BBContactListener listener = new BBContactListener();
world = new BBWorld(gravity, doSleep);
world.SetContactListener(listener);

如何使用该监听器?我应该扩展标准来创建自己的标准还是如何?

Can someone explain the in what way works the collision detection using box2d for android. I cannot understand in what way works BBContactListener.

BBContactListener listener = new BBContactListener();
world = new BBWorld(gravity, doSleep);
world.SetContactListener(listener);

How to use that listener? Should I extend standart to create my own or how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有伤那来痛 2025-01-04 11:01:00

我没有在 android 上使用 box2d,但我认为这个想法是一样的。您必须实施联系处理方法。这就是 C++ 中的方法。

class ContactListener : public b2ContactListener
{
public:
    ContactListener();
    ~ContactListener();

    void BeginContact(b2Contact *contact) {...}
    void EndContact(b2Contact *contact) {...}
    void PreSolve (b2Contact *contact, const b2Manifold *oldManifold) {...}
    void PostSolve (b2Contact *contact, const b2ContactImpulse *impulse) {...}
};

然后将这个类传递给“b2World”

I did not use box2d for android, but I think the idea is the same there. You have to implement contact processing methods. That's the way to do it in C++.

class ContactListener : public b2ContactListener
{
public:
    ContactListener();
    ~ContactListener();

    void BeginContact(b2Contact *contact) {...}
    void EndContact(b2Contact *contact) {...}
    void PreSolve (b2Contact *contact, const b2Manifold *oldManifold) {...}
    void PostSolve (b2Contact *contact, const b2ContactImpulse *impulse) {...}
};

Then just pass this class to `b2World'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文