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 中国語 Web サイトの他の関連記事を参照してください。