声明和初始化精灵数组和引擎时出现空指针异常



我已经在顶部声明了精灵数组:

private Sprite[] how_to=new Sprite[4];

在createscene方法中将精灵初始化为:

    how_to[0]=new Sprite(0, 0, resource_manager.how_to_bg_region1, vbx);
    how_to[1]=new Sprite(0, 0, resource_manager.how_to_bg_region2, vbx);
    how_to[2]=new Sprite(0, 0, resource_manager.how_to_bg_region3, vbx);
    how_to[3]=new Sprite(0, 0, resource_manager.how_to_bg_region4, vbx);
    how_to[4]=new Sprite(0, 0, resource_manager.how_to_bg_region5, vbx);

给出空指针异常:

07-10 16:39:27.135: E/AndroidRuntime(778): FATAL EXCEPTION: UpdateThread
07-10 16:39:27.135: E/AndroidRuntime(778): java.lang.NullPointerException
07-10 16:39:27.135: E/AndroidRuntime(778):  at com.example.cotr.How_to.createScene(How_to.java:27)

你的数组大小是4。所以你可以初始化4个从索引0到3开始的对象。

如果你想这样做,how_to[4]=new Sprite(0, 0, resource_manager.how_to_bg_region5, vbx);尝试将你的数组大小增加到5。

private Sprite[] how_to=new Sprite[5];

您初始化了一个包含4个元素的数组,并为其分配了5个元素。删除最后一个精灵

how_to[4]=new Sprite(0, 0, resource_manager.how_to_bg_region5, vbx);

最新更新