mouseWorld协调Box2D

时间:2015-02-01 06:38:34

标签: c++ box2d

我在Box2D中有一个简单的问题: 如果你想获得鼠标的世界坐标,这就是你将在Java中使用的函数:

    void update(int x, int y)
    {
        if(mousejoint !=0)
        {
            // Always convert to world coordinates!
            Vec2 mouseWorld = box2d.coordPixelsToWorld(x,y);
            mousejoint.setTarget(mouseWorld);
        }
    }

什么是coordPixelsToWorld等效于c ++?

1 个答案:

答案 0 :(得分:1)

像素和Box2D位置之间的任何关联取决于使用库的图形程序。

例如,在 Testbed 程序(附带并使用C ++ Box2D库的图形程序)中,KSession等价物是box2d.coordPixelsToWorld方法。而在 HelloWorld 程序(不是图形程序,但也附带C ++ Box2D代码)中,像素和Box2D位置之间没有任何关联,并且没有等效的方法。

如果您使用Box2D库在C ++中编写自己的图形程序,可以查看 Testbed 程序的Camera::ConvertScreenToWorld方法的源代码,以查看示例如何自己编写这样的方法。您可以在DebugDraw.cpp文件中找到此方法。