如何创建一个计时器,每次这个int的变化?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秒调用一次。

相关内容

最新更新