Maison > Java > javaDidacticiel > Comment créer des objets se déplaçant de manière aléatoire avec des minuteries individuelles en Java ?

Comment créer des objets se déplaçant de manière aléatoire avec des minuteries individuelles en Java ?

Barbara Streisand
Libérer: 2024-10-29 16:32:02
original
335 Les gens l'ont consulté

 How to Create Randomly Moving Objects with Individual Timers in Java?

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
        }
    }
}
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal