【发布时间】:2015-05-30 01:39:14
【问题描述】:
我创建了一个名为 Bullets 的类:
public class Bullets {
private double x;
private double y;
private BufferedImage bulletImage;
Bullets(double x, double y){
this.x = x;
this.y = y;
ImageLoader loader = new ImageLoader();
SpriteSheet ss = new SpriteSheet(loader.loadImage("/Pics/TheSpriteSheet.png"));
bulletImage = ss.grabImage(2, 1, 32, 32);
}
public void render(Graphics g){
g.drawImage(bulletImage, (int)x, (int)y, null);
}
public void tick(){
y--;
}
}
然后我创建了一个名为 BulletQualities 的类:
package mainPackage;
import java.awt.Graphics;
import java.util.LinkedList;
public class BulletQualities {
Bullets b;
private LinkedList<Bullets> bulletList = new LinkedList<Bullets>();
public void addBullet(Bullets b){
bulletList.add(b);
}
public void tick(){
for(int x = 0;x <= bulletList.size();x++){
我在这一行遇到错误
bulletList.get(x).tick();
}
}
public void render(Graphics g){
for(int x = 0;x <= bulletList.size(); x++){
bulletList.get(x).render(g);
}
}
public void removeBullet(Bullets bullet){
bulletList.remove(bullet);
}
}
然后,在我的 Game 课中,我这样做了:
Bullets b = new Bullets(playerClass.getX(), playerClass.getY());
BulletQualities bulletQualities = new BulletQualities();
public void init(){
bulletQualities.addBullet(b);
}
public void render(){
BufferStrategy bs = this.getBufferStrategy();
if(bs == null){
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
////////////////////////////////////////////
g.drawImage(background, 0, 0, this);
playerClass.render(g);
bulletQualities.render(g);
////////////////////////////////////////////
g.dispose();
bs.show();
}
public void tick(){
playerClass.tick();
我在这一行遇到错误
bulletQualities.tick();
}
我得到的确切错误是:
线程“Thread-4”java.lang.IndexOutOfBoundsException 中的异常:索引:1,大小:1 在 java.util.LinkedList.checkElementIndex(未知来源) 在 java.util.LinkedList.get(未知来源) 在 mainPackage.BulletQualities.tick(BulletQualities.java:15) 在 mainPackage.Game.tick(Game.java:105) 在 mainPackage.Game.run(Game.java:78) 在 java.lang.Thread.run(Unknown Source)
【问题讨论】:
标签: java indexoutofboundsexception