所以我一直在学习如何使用jme3引擎和SDK。我开始在主应用程序文件之外工作,该文件扩展了SimpleApplication以进一步改进了我的应用程序。
我的问题是这个..如何正确初始化物理对象?在..你创建一个Player类,其中有一个名为phyiscs的BulletAppState对象,但是没有为AT FIRST分配值!它在构造函数中分配。
class Player {
BulletAppState physics;
public Player(BulletAppState physicsState) {
this.physics = physicsState; // State should now be initialized when
// this constructor is is called
}
}
然后,在主类文件
中class Main extends SimpleApplcation {
Player player;
BulletAppState physics;
public static void main(String[] args) {
Main app = new Main();
app.start();
}
@Override
public void simpleInitApp() {
physics = new BulletAppState();
physics.setThreadingType(BulletAppState.ThreadingType.PARALLEL);
stateManager.attach(physics);
player = new Player();
}
}
我没有达到预期的结果。
输出结果为:
启用主类物理状态?真
启用了玩家类物理状态?假
答案 0 :(得分:0)
只需通过physics
构造函数中的Player()
即可初始化BulletAppState
。
player = new Player(physics);
答案 1 :(得分:0)
大提示:stateManager.attach()将东西添加到队列中!
在调用simpleInitApp期间初始化的唯一appStates是那些传递到new Main(appStates...)
我在面向对象的游戏项目中运行良好:
Main app = new Main( new StatsAppState(), new FlyCamAppState(), new DebugKeysAppState(), physics );
它很好地传递给simpleInitApp()调用中的所有对象。