我正在尝试制作蛇游戏。我快完成了。问题是,有时当蛇吃掉敌人的物体时,会弹出此错误--->
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);
我希望这些信息就足够了。提前致谢! :)
答案 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);