Déplacer des objets avec des minuteries aléatoires
Votre objectif est de créer des objets en mouvement qui apparaissent aléatoirement depuis le bas de l'écran, atteignent une certaine hauteur et puis descendez. Pour éviter que toutes les formes ne démarrent simultanément, vous devez implémenter des minuteries individuelles pour chaque objet.
L'approche fournie ci-dessous utilise une classe Shape qui encapsule les propriétés de chaque objet, y compris son délai initial aléatoire. Dans l'écouteur d'action du minuteur, les méthodes Shape sont appelées pour gérer le mouvement, la réduction du délai et le dessin.
<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 } } }
Cette approche garantit que chaque forme a son propre délai aléatoire, les empêchant de démarrer leur mouvement. en même temps.
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!