나는 내가 만들고있는 게임에 LWJGL과 Slick2D를 사용하고 있습니다. 그리기 원하는 방식을 그리는 것처럼 보이지 않으므로 직접 그리기 방법을 생각해 냈습니다. 기본적으로 이미지, 도끼 및 ay를 가져 와서 이미지의 각 픽셀을 통과하여 색상을 얻은 다음 x 매개 변수에 x 픽셀을 더한 이미지를 그려 픽셀이 그려지는 위치를 얻습니다. 에. y와 같은 아이디어. 비록 알파 채널이 픽셀을 위해 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