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); }
中在此修改版本中,我們添加了檢查以查看星星的位置是否超出框架範圍。如果星星的位置超出了框架的邊界,我們會反轉移動方向,以便星星會移回框架內。這可以確保星星始終保持在框架的範圍內,並且不會相互重疊。
以上是修改後的 move() 方法如何防止星體離開框架?的詳細內容。更多資訊請關注PHP中文網其他相關文章!