Objek Bergerak dengan Pemasa Rawak
Matlamat anda ialah untuk mencipta objek bergerak yang muncul secara rawak dari bahagian bawah skrin, mencapai ketinggian tertentu dan kemudian turun. Untuk mengelakkan semua bentuk bermula serentak, anda perlu melaksanakan pemasa individu untuk setiap objek.
Pendekatan yang disediakan di bawah menggunakan kelas Bentuk yang merangkum setiap sifat objek, termasuk kelewatan awal rawaknya. Di dalam pendengar tindakan pemasa, kaedah Shape dipanggil untuk mengendalikan pergerakan, pengurangan kelewatan dan lukisan.
<code class="java">import java.awt.event.ActionListener; import java.util.List; import java.util.Random; class Shape { // Object properties int x; int y; boolean draw; int randomDelay; // Delay before the object starts moving public Shape(int x, int randomDelay) { this.x = x; this.y = 0; // Start at the bottom of the screen this.draw = false; this.randomDelay = randomDelay; } // Object movement logic public void move() { if (draw) { y++; // Move up or down based on the current state } } // Decrease the delay public void decreaseDelay() { randomDelay--; if (randomDelay <= 0) { draw = true; // Start drawing the object once the delay reaches zero } } // Draw the object public void draw(Graphics g) { if (draw) { // Draw the shape on the screen } } }
Pendekatan ini memastikan setiap bentuk mempunyai kelewatan rawak yang unik, menghalang mereka daripada memulakan pergerakannya. pada masa yang sama.
<code class="java">// Create a list of Shape objects with random delays List<Shape> shapes = new ArrayList<>(); for (int i = 0; i < 10; i++) { Random random = new Random(); int randomXLoc = random.nextInt(width); int randomDelay = random.nextInt(500); // Set a random delay between 0 and 499 milliseconds shapes.add(new Shape(randomXLoc, randomDelay)); } // Initialize a timer and specify the action listener Timer timer = new Timer(10, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { for (Shape shape : shapes) { shape.move(); shape.decreaseDelay(); shape.draw(g); // Draw the shape if allowed } } }); // Start the timer timer.start();</code>
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Objek Bergerak Secara Rawak dengan Pemasa Individu di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!