Star 클래스의 move() 메소드는 화면 주위에서 별 객체를 이동하는 데 사용됩니다. 이 메서드의 원래 구현에서는 별이 프레임 경계 밖으로 이동하는 경우를 제대로 처리하지 못했습니다. 이로 인해 별이 사라지거나 다른 별과 겹칠 수 있으며 이는 원하는 동작이 아닙니다. move() 메서드의 수정된 버전은 별의 위치가 프레임 경계 외부에 있는지 확인하고 필요한 경우 이동 방향을 반대로 바꾸어 이 문제를 해결합니다. 이렇게 하면 별이 항상 프레임 경계 내에 유지되고 서로 겹치지 않게 됩니다.
다음은 move() 메서드의 수정된 버전입니다.
public void move() { if (location.x < 0 || location.x > frame.getContentPane().getWidth() - 20) { xIncr = -xIncr; } if (location.y < 0 || location.y > frame.getContentPane().getHeight() - 20) { yIncr = -yIncr; } translate(xIncr, yIncr); location.setLocation(location.x + xIncr, location.y + yIncr); }
In 이 수정된 버전에는 별의 위치가 프레임 경계 밖에 있는지 확인하는 검사를 추가했습니다. 별의 위치가 프레임 경계 밖에 있으면 별이 프레임 안으로 다시 들어갈 수 있도록 이동 방향을 바꿉니다. 이렇게 하면 별이 항상 프레임 경계 내에 유지되고 서로 겹치지 않게 됩니다.
위 내용은 수정된 'move()' 메서드는 별 개체가 프레임을 떠나는 것을 어떻게 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!