ArrayIndexOutOfBoudsException

时间:2013-12-03 02:55:31

标签: indexoutofboundsexception

所以我一直在尝试使用“渲染”方法编译这个程序,该方法从精灵表中访问像素,但不断得到一个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 。让这成为任何其他开发人员的警告!

0 个答案:

没有答案
相关问题