我有一个 ArrayList 用于在游戏中动态创建敌人。当直观地填充列表时,游戏突然崩溃,大概是因为空指针异常。
数组声明如下:
...
ArrayList<EntityPlayer> EnemyList;
并填充敌人的内容:
...
EnemyList.add(new EntityPlayer(mMVPMatrix, mActivityContext, R.drawable.enemy));
突然间,程序崩溃了,日志如下:
03-30 01:03:02.066: W/dalvikvm(1348): threadid=11: thread exiting with uncaught exception (group=0xa6185908)
03-30 01:03:02.066: E/AndroidRuntime(1348): FATAL EXCEPTION: GLThread 102
03-30 01:03:02.066: E/AndroidRuntime(1348): java.lang.NullPointerException
03-30 01:03:02.066: E/AndroidRuntime(1348): at com.example.rr.ApplicationClass.GLRenderClass.onDrawFrame(GLRenderClass.java:143)
03-30 01:03:02.066: E/AndroidRuntime(1348): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)
03-30 01:03:02.066: E/AndroidRuntime(1348): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
这样做的目标是在“if”语句中生成一个新敌人,并使用存储在 EntityPlayer
元素实例化中的方法。我可以手动声明 EntityPlayer 的单独实例,但我可以更好地控制这个系统。 (这是为了模仿 C++ 中的 vector 类)
最佳答案
更改ArrayList<EntityPlayer> EnemyList;
到
ArrayList<EntityPlayer> EnemyList = new ArrayList<EntityPlayer>();
关于java - Android:为敌人创建存储阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739196/