私はプロジェクトに取り組んでいます。このプロジェクトには次のものがあります...
プロジェクト1
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 ライブラリ内で世界が機能していることがわかりますが、新しいコードを介してアクセスしようとすると、null になります....
D/Native (14119): 引き分け
D/Native (14119): 何らかの理由でワールドが設定されていません
新しいライブラリから呼び出すと null と表示されるのに、古いライブラリでは問題なく動作するのはなぜですか? 静的なので、両方で動作するべきではありませんか?