簡體   English   中英

每次int更改時如何創建計時器? 爪哇

[英]How to create a timer for every time this int changes? Java

我正在嘗試出於娛樂,練習和學習目的在2D游戲中為敵人創建行為。 我執行運動的方式是讓它以隨機量(-5到5)隨機更改其坐標,但是它的執行速度非常快。

這是我的代碼

public void EnemyMovement() 
    {
Random randomnum = new Random();
enemyX += randomnum.nextInt(5);
enemyX -= randomnum.nextInt(5);
enemyY += randomnum.nextInt(5);
enemyY -= randomnum.nextInt(5);

}

您可以使用ScheduledExecutorService創建一個在后台運行的新線程。 然后將以指定的時間間隔執行給定的任務

import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors;

import java.util.concurrent.TimeUnit;

import java.util.Random;

public class TimeMove {

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();;
    Random randomnum = new Random();

    public void moveNow() {
        int moveX = randomnum.nextInt(5);
        int moveY = randomnum.nextInt(5);
        System.out.println("Moving " + moveX + ", " + moveY);
    }

    public void startRandomMover()  {
        executor.scheduleAtFixedRate(new Runnable()
        {
            public void run() {
                moveNow();
            }
        }, 0, 1, TimeUnit.SECONDS);
    }

    public static void main(String[] args) {
        TimeMove mover = new TimeMove();
        mover.startRandomMover();
    }
}

請注意代碼0, 1, TimeUnit.SECONDS 這意味着計時器將以0秒的延遲開始,然后每1秒被調用一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM