자바 속도조절 논리 질문 좀 드리겠습니다..!!

조회수 1454회
 int x, y;                     // 원의 좌표
   int xDirection=5, yDirection=5;   // 원이 움직이는 방향 보폭
   Timer t;                     // 애니메이션을 위한 시계
   int DELAY = 20;            // 타이머 액션 발생 빈도/시간
   JFrame frame;                  // 화면
   MyDrawPanel drawPanel;            // 공이 그려지는 패널
   int wid=40,hei=40; //공 넓이

private class TimerListener implements ActionListener {
      public void actionPerformed (ActionEvent event) {
         if ((xDirection > 0 && x >= drawPanel.getWidth() -wid) ||
               (xDirection < 0 && x <= 0))  {
            xDirection *= -1;
         }

         x += xDirection;

         // y 축의로의 움직임을 결정
         if ((yDirection > 0 && y >= drawPanel.getHeight() -hei) ||
               (yDirection < 0 && y <= 0)) {
            yDirection *= -1;
         }

         y += yDirection;

         drawPanel.repaint();
      }
   }

class SpeedListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {
         if ((e.getSource()) == slowButton) {
            if(DELAY >= 5)
               DELAY *= 2;
            t.setDelay(DELAY);
         }
         if (( e.getSource()) == fastButton) {
            if(DELAY <= 80)
               DELAY /= 2;
            t.setDelay(DELAY);
         }
      }
     }
    ```
    안녕하십니까 자바를 공부하고 있는 대학생입니다!
    다름이 아니라 타이머의 딜레이를 이용하여서 느리게 버튼을 누르면 느리게 하고 빠르게 버튼을 누르면 빠르게 하는데 너무 빠르지도 느리지도 않게 작성을 하고 있습니다. 그런데 이렇게 코드를 작성하면 빨라졌다가 느리게 버튼을 누르면 느려지지가 않아서 질문을 드려봅니다..!! 감사합니다!


  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)