Int Null指针异常

时间:2015-02-17 23:11:49

标签: java animation file-io game-engine

我试图了解我做错了什么,但我找不到有什么问题。当我运行以下代码时,它返回

Exception in thread "main" java.lang.NullPointerException
at jeremy.engine.Animation.displayFrames(Animation.java:43)
at jeremy.engine.Animation.playNextFrame(Animation.java:54)
at jeremy.engine.test.draw(test.java:33)
at jeremy.engine.test.main(test.java:90)

此代码段存在问题

public static boolean displayFrames() {
    if (frame<frames.length+1) {
        Disp.drawTexturedBox(x, y, width, height, frames[frame]);
        return true;
    }
    return false;
}

我正在尝试加载图片并将其显示为动画。 我的初始化代码

public static double x = 0;
public static double y = 0;
public static double width = Disp.resX;
public static double height = Disp.resY;
private static Texture frames[] = null;

2 个答案:

答案 0 :(得分:1)

我猜你从未真正初始化frames[]数组。当您尝试通过调用frames.length来访问它时,它可能仍为null。

答案 1 :(得分:0)

看看这个功能:

public static boolean displayFrames() {
    if (frame<frames.length+1) {
        Disp.drawTexturedBox(x, y, width, height, frames[frame]);
        return true;
    }
    return false;
}

问题似乎是此检查:frame<frames.length+1

数组中的最后一个索引位于frames.length - 1,而不是frames.length + 1

所以这应该有效:

public static boolean displayFrames() {
    if (frame < frames.length - 1) {
        Disp.drawTexturedBox(x, y, width, height, frames[frame]);
        return true;
    }
    return false;
}