所以我一直在尝试使用“渲染”方法编译这个程序,该方法从精灵表中访问像素,但不断得到一个ArrayIndexOutOfBoundException,但像素为[(x + xPos)等的行除外上
public void render(int xPos, int yPos, int tile, int colour){
xPos -= xOffset;
yPos -= yOffset;
int xTile = tile%32;
int yTile = tile/32;
int tileOffset = (xTile<<3) + (yTile<<3)*sheet.width;
for(int y = 0; y<8; y++){
if(y + yPos<0 || y + yPos>= height) continue;
int ySheet = y;
for(int x = 0; x<8; x++){
if(x + xPos<0 || x + xPos>= width) continue;
int xSheet = x;
int col = (colour >> (sheet.pixels[xSheet + ySheet* sheet.width + tileOffset]*8)) & 255;
if(col < 255) {
pixels[(x + xPos) + (y + yPos) * width] = col;
}
}
}
}
我不明白我做错了什么,这是我的电脑或编程的问题?
编辑:发现问题,它是在另一个声明像素[]的方法中我不小心把this.width = width和 this.height = width 。让这成为任何其他开发人员的警告!