Die move()-Methode in der Star-Klasse wird verwendet, um die Sternobjekte auf dem Bildschirm zu verschieben. Die ursprüngliche Implementierung dieser Methode behandelte den Fall, dass sich der Stern außerhalb der Rahmengrenzen bewegen würde, nicht ordnungsgemäß. Dies könnte dazu führen, dass der Stern verschwindet oder sich mit anderen Sternen überlappt, was nicht das gewünschte Verhalten wäre. Die modifizierte Version der move()-Methode behebt dieses Problem, indem sie prüft, ob sich die Position des Sterns außerhalb der Rahmengrenzen befindet, und bei Bedarf die Bewegungsrichtung umkehrt. Dadurch wird sichergestellt, dass die Sterne immer innerhalb der Grenzen des Rahmens bleiben und sich nicht gegenseitig überlappen.
Hier ist die modifizierte Version der move()-Methode:
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 In dieser modifizierten Version haben wir Überprüfungen hinzugefügt, um festzustellen, ob sich die Position des Sterns außerhalb der Rahmengrenzen befindet. Wenn sich die Position des Sterns außerhalb der Rahmengrenzen befindet, kehren wir die Bewegungsrichtung um, sodass sich der Stern wieder in den Rahmen bewegt. Dadurch wird sichergestellt, dass die Sterne immer innerhalb der Grenzen des Rahmens bleiben und sich nicht gegenseitig überlappen.
Das obige ist der detaillierte Inhalt vonWie verhindert die modifizierte Methode „move()', dass Sternobjekte den Rahmen verlassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!