我正在尝试为一个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);}
发布于 2014-06-07 17:43:14
您可以使用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秒调用一次。
https://stackoverflow.com/questions/24095294
复制相似问题