我有这段代码来创建一个 ArrayList,其中包含实际存在像素的所有像素位置(alpha!= 0)。
代码如下:
public ArrayList<Point> getPixels() {
ArrayList<Point> output = new ArrayList<Point>();
Image frameImage = img.getCurrentFrame();
for (int FIx = 0; FIx <= img.getWidth(); FIx++) {
for (int FIy = 0; FIy <= img.getHeight(); FIy++) {
if (frameImage.getColor(FIx, FIy).getAlpha() != 0.00f) {//<-- Error
output.add(new Point(FIx, FIy));
}
}
}
return output;
}
该循环可以多次完成,没有任何错误,但在运行的所谓随机时间,它会给出以下错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 32768
at org.newdawn.slick.Image.getColor(Image.java:1248)
at com.SourCherry.games.KittySniper.Enemy.Kitten.getPixels(Kitten.java:197)
我已经用注释标记了提到的行 (Kitten.java:197)。
如果需要其他任何东西来帮助解决这个问题,请在评论中提问。谢谢。