我正在做一个项目,在这个项目中我有以下...
项目一
JNIBox2DWorld.h
static b2World* world = NULL;
JNIBox2DWorld.cpp
world = new b2World(gravity);
现在这似乎工作正常,但我想添加一个 OpenGL 渲染器,所以我创建一个新项目并引用旧的头文件......
项目2
b2GLPolygonShape.h
#include <Box2D/JNIBox2DWorld.h>
...
class b2GLPolygonShape
{
public:
void Draw();
void Draw(b2PolygonShape* s);
};
b2GLPolygonShape.cpp
#include "b2GLPolygonShape.h"
void b2GLPolygonShape::Draw(){
LOGD("in Draw");
if(world == NULL){
LOGD("World is not set for some reason");
}
else{
LOGD("World is set");
}
}
我看到这个世界在 Box2D 库中运行,但是当我尝试通过我的新代码访问它时,它是空的......
D/Native (14119):在抽奖中
D/Native (14119):由于某种原因未设置世界
为什么当我从我的新库中调用它时它显示为 null 但从旧库中可以正常工作?既然它是静态的,它不应该同时使用吗?