> Java > java지도 시간 > Java에서 개별 타이머를 사용하여 무작위로 움직이는 객체를 만드는 방법은 무엇입니까?

Java에서 개별 타이머를 사용하여 무작위로 움직이는 객체를 만드는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-29 16:32:02
원래의
308명이 탐색했습니다.

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

무작위 타이머로 움직이는 물체

당신의 목표는 화면 하단에서 무작위로 나타나고, 특정 높이에 도달하고, 그런 다음 내려갑니다. 모든 모양이 동시에 시작되는 것을 방지하려면 각 개체에 대해 개별 타이머를 구현해야 합니다.

아래에 제공된 접근 방식은 임의의 초기 지연을 포함하여 각 개체의 속성을 캡슐화하는 Shape 클래스를 활용합니다. 타이머의 액션 리스너 내에서 Shape 메서드가 호출되어 이동, 지연 감소 및 그리기를 처리합니다.

<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
        }
    }
}
로그인 후 복사

이 접근 방식을 사용하면 각 셰이프에 고유한 무작위 지연이 있어 이동이 시작되지 않습니다. 동시에.

<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>
로그인 후 복사

위 내용은 Java에서 개별 타이머를 사용하여 무작위로 움직이는 객체를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿