2015-01-18 2 views
0

내 프로그램에서 공을 만들기 위해 노력하는 코드를 가지고 놀았습니다. 시나리오가 구체화되어 있어야만 볼 미로 게임이되어 볼을 한 번에 1 칸 움직일 수 있도록 만들어야합니다. 최종 골대에 도달 할 때까지 공은 미로에서 벗어나서는 안됩니다.공 이동

그래서 나는 내가 다음 코드를 사용하여 위 아래, 오른쪽, 그렇게 내 볼이 왼쪽 방향으로 한 번에 하나 개의 공간을 이동할 수 있도록 다음 코드를 추가/변경해야 할 일을 알고 싶어 :

public void key(){ 
     int leftChange=0; 
     int rightChange=0; 
     int upChange=0; 
     int downChange=0; 
     if (Greenfoot.isKeyDown("left")){ 
      if (canMove(leftChange, 0)==true) 
      setLocation(getX()+leftChange, getY()) ; 
     } 
     if (Greenfoot.isKeyDown("right")){ 
      if (canMove(rightChange, 0)==true) 
      setLocation(getX()+rightChange, getY()) ; 
     } 
     if (Greenfoot.isKeyDown("up")){ 
      if (canMove(0, upChange)==true) 
      setLocation(getX(), getY()+upChange) ; 
     } 
     if (Greenfoot.isKeyDown("down")){ 
      if (canMove(0, downChange)==true) 
      setLocation(getX(), getY()+downChange) ; 
     } 
    } 

다시 한번 도움을 주시면 감사하겠습니다.^_ ^.

+0

변수를 0 대신 1로 초기화 하시겠습니까? –

+0

나는 지금 당장 시도했지만 아무런 일도 일어나지 않았다. –

+0

우리는 이러한 모든 방법들이 무엇을하는지 전혀 모르기 때문에 그러한 질문에 대답 할 수 없습니다. 디버거를 사용하십시오. –

답변

0

공을 한 번에 한 칸 이동하려면 세계의 높이와 너비를 알아 내고 거기에서 하나의 셀 크기를 찾아야합니다. 그런 다음 시작하려는 셀부터 x 또는 y 중 하나를 더하거나 뺍니다. 다음 셀로 이동합니다.