我正在使用LWJGL和Slick2D來製作遊戲。我似乎無法讓它畫出我想要繪製的方式,所以我想出了一個想法來製作我自己的繪圖方法。基本上它需要一個圖像,ax和ay,並且它會遍歷圖像中的每個像素,獲取顏色,然後使用參數x加上它所在的x像素繪製圖像,以獲取該像素應該繪製的位置上。與y相同的想法。雖然如果alpha通道不是255像素,它不會繪製它,儘管稍後我會解決它。問題是,每當我運行我的代碼,我得到「線程中的異常」主「java.lang.ArrayIndexOutOfBoundsException:-2044」。我很困惑。我希望有人能夠弄清楚爲什麼會發生這種情況。無理由拋出隨機outofboundsexception?
private void DrawImage(Image image, int xP, int yP)
{
//xP And yP Are The Position Parameters
//Begin Drawing Individual Pixels
glBegin(GL_POINTS);
//Going Across The X And The Y Coords Of The Image
for (int x = 1; x <= image.getWidth(); x++)
{
for (int y = 1; y <= image.getHeight(); y++)
{
//Define A Color Object
Color color = null;
//Set The Color Object And Check If The Color Is Completly Solid Before Rendering
if ((color = image.getColor(x, y)).a == 255)
{
//Bind The Color
color.bind();
//Draw The Color At The Coord Parameters And The X/Y Coord Of The Individual Pixel
glVertex2i(xP + x - 1, yP + y - 1);
}
}
}
glEnd();
}
首先,您是否有錯誤發生位置的行號(如果您確切知道拋出異常的位置,它會使調試更容易)?其次,在代碼的這一部分中我沒有看到任何明確的數組引用 - 查看您訪問數組的位置,然後檢查並查看是否有任何變量或常量用作索引的值可能超出數組的大小。 – scaevity 2013-02-23 05:51:48