2012-04-14 7 views
0

나는이 코드를 가지고 있고 자바 2 차원 게임에서 점프를 시작하고 싶다. 내 물건은 어디에도 가지 않는다. 단지 그곳에 머무르며 ... 나는 내 물건을 원한다. 내가 키와 나 이미지가 이동 down..i 간단 칠하고() 메소드 코드 ::::자바 2 차원 게임에서 "점프"

public void actionPerformed(ActionEvent e) { 
    if(hero.jump()==1){ 
    int jumpheight=40,j=0; 
    while(j<jumpheight){ 
     hero.y--;    \\changing the y position (up).. 
      try { 
      Thread.sleep(100); 
     } catch (InterruptedException e1) {} 
     repaint(); 
     j++; 
    } 
    j=0; 
    hero.jump1=0; 
    while(j<jumpheight){ 
     hero.y++;    \\changing the y position (down).. 
      try { 
      Thread.sleep(100); 
     } catch (InterruptedException e1) {} 
     repaint(); 
     j++; 
    } 
    } 
    else { 
    hero.move(); 
    repaint(); 
    } 
+0

Java GUI를 많이 사용하지는 않지만, 올바르게 기억한다면 최근에 다시 그리려했던 JPanel에서 updateUI 메소드를 호출하여 해결 된 문제가있었습니다. 전체 코드를 게시하는 경우이를 살펴 보겠습니다. –

+0

숙제에 "숙제"라고 태그하는 것을 잊지 마십시오. ....? – barsju

+0

actionPerformed 함수가 호출되고 있습니까? –

답변

0

하여이 작업을 수행하기 위해 노력하고 표시하는 프로그램을 누를 때 당신은 위치를 이동해야하는 점프 다른 스레드로 변경하십시오. 이제 키 처리 및 다시 그리기가 현재 코드의 동일한 스레드에서 처리됩니다. repaint()을 호출하면 다시 그리기가 예약되지만 이벤트 스레드가 다시 "무료"가 될 때까지는 수행되지 않지만 루프가 있기 때문에 (절전 모드 사용) 결코 자유롭지 않고 루프가 끝난 후 다시 그리기가 수행됩니다 done (당신의 영웅은 원래 위치로 되돌아 간다).

관련 문제