每当Ashley Engine尝试更新时,都会发生一次NPE。
当我按照教程学习时,我真的不知道问题出在哪里。

在开发游戏时,我将Libgdx,Ashley,Bullet组合在一起……没有错误,一切正常。
在完成一本书的教程之后,我得出了一些奇怪的结论。
Ashley,Familys,CustomWidget等对我来说真的很新。

所以对于主要错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference
at com.badlogic.gdx.utils.ObjectSet.contains(ObjectSet.java:354)
at com.badlogic.ashley.core.EntityManager.addEntityInternal(EntityManager.java:116)
at com.badlogic.ashley.core.EntityManager.processPendingOperations(EntityManager.java:86)
at com.badlogic.ashley.core.Engine.update(Engine.java:206)
at com.OxyZStudio.OxyddiA.System.GameRendering.GameWorld.renderWorld(GameWorld.java:134)


造成原因:

protected void renderWorld(float delta)
    {
    modelBatch.begin(perspectiveCamera);
    //engine.update(delta); <<<<<<<<<<<<<<<<    TO FIX ABSOLUTELY!
    modelBatch.end();
    }


我可能想念某事
我曾经学习的书是“使用LibGDX构建3D游戏”

我需要解决这个使我头昏的问题,
然后我就可以通过下一步了:)

我希望几乎所有内容都可以显示在屏幕上,而无需引擎部分。

UI部分部分起作用(稍后将进行修复)

但是当引擎打开时,游戏崩溃。

提前致谢,

Cordialy!

//(https://i.stack.imgur.com/sP3II.jpg

最佳答案

其实这是我遵循的书
我要达到的目的是完整地跟随Tuto,
设置一个有效的原型,然后适应我的需求。

坦白说,
昨天我检查了GameWorld中使用的每个系统,
异常是由已被破坏的敌人系统引起的,现在不再是。

可以将其修改为“已解决”,
由于它是由不完整的敌人系统引起的,现在不再如此

关于java - 如何修复与Ashley框架相关的NullPointerException,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57022373/

10-10 08:40