蛇游戏中的Java ArrayIndexOutOfBoundException错误

时间:2018-07-07 17:47:12

标签: java arrays swing compiler-errors awt

我正在尝试制作蛇游戏。我快完成了。问题是,有时当蛇吃掉敌人的物体时,会弹出此错误--->

if (result.next() == false) {
 System.out.println("Empty Resultset");
}
while (result.next()){

}

er.java:814)

这是敌人的位置单元--->

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 33

这是随机数--->

private int[] enemyYpos = {25,50,75,100,125,150,175,200,225,250,275,300,325,350,375,400,425,450,475,500,525,550,575,600,625,650,675,700,725,750,775,800,825,850};
private int[] enemyXpos = {100,125,150,175,200,225,250,275,300,325,350,375,400,425,450,475,500,525,550,575,600,625};

现在,我通过使用for循环来绘制敌人,在其中定义敌人的位置->

private int xpos = r.nextInt(34);
private int ypos = r.nextInt(20);

我希望这些信息就足够了。提前致谢! :)

2 个答案:

答案 0 :(得分:0)

您的问题是您混合使用X和Y。应该是

xpos = r.nextInt(20);
ypos = r.nextInt(34);

而不是相反。

答案 1 :(得分:0)

我认为您交换了x个元素的数量和y个元素的数量。最简单的修复。更改生成器以使用数组的长度而不是幻数。

private int xpos = r.nextInt(enemyXpos.length);
private int ypos = r.nextInt(enemyYpos.length);

xpos = r.nextInt(enemyXpos.length);
ypos = r.nextInt(enemyYpos.length);