2014-11-04 3 views
0

Greenfoot에 숙제를해야합니다. 이 부분은 Chess의 위치를 ​​저장 한 다음 다시 설정해야 함을 의미합니다.
그런 다음 다시로드하기 전에 체스 조각을 원래대로 되돌려 놓아야합니다.
배열의 정확한 크기를 알 수 없으므로 List을 사용할 수 있지만 숙제는 허용되지 않습니다.정적 배열이 선언되었지만 메서드가 작동하지 않습니다.

화면에 아무 것도 나타나지 않지만 오류 메시지는 표시되지 않습니다.

나는 Chess이라는 클래스가 있다고 가정합니다.

static Actor[] allChess; 

public void save() // this is the save 
{ 
    Actor[] allChess = GWorld.getAllObjects("Chess"); 
} 

public void load() // this is the load 
{ 
    if (allChess != null) 
    { 
     for (int i=0; i < allChess.length; i++) 
     { 
      Chess ch = (Chess) allChess[i]; 
      GWorld.addOneObject(new Chess(ch.color, ch.rank), ch.getX(), ch.getY()); 
     } 
    } 
} 

감사합니다.

+0

체스는 액터의 서브 클래스입니다. 이 전체 블록은 세계에서 선언됩니다. – Smile

답변

4

allChesssave()에 로컬 변수로 다시 선언됩니다. 다음과 같이하십시오 :

public void save() // this is the save 
{ 
    allChess = GWorld.getAllObjects("Chess"); 
} 
+0

고마워요! 그것은 효과가있다! 나는 1 시간 동안 고투하고있다. – Smile