2013-05-15 2 views
0

오류 줄에는 주석이 있습니다. 도움을 고치는 방법을 모르겠습니다! 나는 그것이 출현 한 지점을 변경하려고 시도했으나 효과가 없었습니다.java.lang.ArrayIndexOutOfBoundsException : 11

if(z[image].getColorAt(x,y).equals(Color.white)) 

addObject(new Char(0,0),80,360); 

세부 사항 :

public Char(int up,int wep){ 
    setImage(buffer); 
    upgrade=up; 
    weapon=wep; 
    for(image=0;image<20;image++){ 
     for(int x=0;x<28;x++){ 
      for(int y=0;y<24;y++){ 
       if(z[image].getColorAt(x,y).equals(Color.white)) // this is part of the error) 
        z[image].setColorAt(x,y,alpha); 
       } 
      } 
     } 
    } 



addObject(new control(1),300,200); 
setPaintOrder(control.class , door.class,overlay.class,projectile.class,elevator.class,sword.class,upgrade.class,bat.class,fall.class,Tank.class,Enemy.class,bullet.class,platform.class,Char.class,lever.class); 
setActOrder(elevator.class,Char.class); 
addObject(new Char(0,0),80,360); // this line is part of the error 
setBackground("Back1.png"); 
map = new GreenfootImage("map1.png"); 
addObject(new overlay(),300,200); 
+0

z 정의 방법은 무엇입니까? (또한 전체 예외를 게시 할 수 있습니다.) – FDinoff

+1

20 개 미만의 요소가있는 z에 관한 것입니다. 더 정확하게는 10입니다. 그런 색인이 없기 때문에 11시에 사망합니다. – Alfabravo

답변

0

내가 배열 "z는"생성하는 방법을 볼 수 있지만, 그것은 단지 11 요소가 보이는, 그래서 마지막 요소는 z [10], 존재하지 않는 12. 요소 인 z [11]에 액세스하면 IndexOutOfBoundsException이 발생합니다.

for 루프에서 "20"대신 "z.lenght"를 사용할 수 있습니다.

+1

StackOverflow에 오신 것을 환영합니다. 질문에 대한 설명을 위해 질문 자체에 주석을 사용하는 것을 고려하십시오. – carlosfigueira

+0

@carlosfigueira 다른 사람들의 질문에 대한 의견은 [최소 50 점을 가진 사용자에게만 허용됩니다.] – eis

+0

좋은 지적, 기억에 감사드립니다. – carlosfigueira

관련 문제